Страницы: 1
У вас какая-то адская каша в скриптах
С одной стороны html5, jQuery и т.п., а с другой обращение к элементам по id, что является устаревшим уже лет десять.
В общем, почините сначала ошибки в своём скрипте (ctrl-shift-j показывает консоль ошибок) а потом начинайте пенять на jQuery.
Да, я посмотрел все ошибки - почти все генерируются кодом яндекс-карт,(то есть именно этот код был в примерах у яндекса, модификаций - только то, что там он инициализировался при запуске, а у меня по клику на функцию), и одна ошибка генерируется jQ - по крайней мере, такой функции в исходном коде у меня нет, а отладчик хрома вообще не видит такой ошибки.
А на счет обращения по id - разве это не самый надежный и простой способ?
Я вообще-то не занимаюсь профессиональной разработкой сайтов, только мелочи, просто решили сделать карту дет.садиков для родного города.
mauzer17 пишета если по теме, подскажите хак для js, что бы дополнительная функция отрабатывала ТОЛЬКО в
…
И тишина, и мертвые с косами стоят((((
а если по теме, подскажите хак для js, что бы дополнительная функция отрабатывала ТОЛЬКО в FF?
Наверное стоит привести полный код страницы благо он не очень большой - [spoiler][code]<!DOCTYPE html>
<html>
<head>
<title>Примеры. Загрузка XML.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU"
type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
ymaps.ready(init);
function init () {
var myMap = new ymaps.Map("map", {
center: [51.53893, 46.004442],
zoom: 11
});
searchControl = new ymaps.control.SearchControl({ provider: 'yandex#publicMap' });
window.loadXml = function (url, el) {
ymaps.geoXml.load(url).then(function (res) {
$(".ymaps-point-overlay").addClass(el);
myMap.geoObjects.add(res.geoObjects);
Проверил, у меня работает и remove и empty. Fx14.0b6
Выделить кодКод:
<html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> function removeElement() { $('.ymaps-overlay-stepwise-pane').remove() } </script> </head> <body> <a href="#" onclick="removeElement()">Очистить карту</a> <div class="ymaps-overlay-stepwise-pane" style="background: #ff0000; width: 128px; height: 128px;"> test </div> </body> </html>
Здесь есть одна тонкость - в исходном html коде такого класса нет, то есть грузиться код яндекс-карт, который создает метки на карте имеющий этот класс. Прямого объявления как у вас примере нет. Скорее всего проблема в этом, т.к. при инициализации класса как у вас у меня все так же заработало(стирается только квадрат, метки остаются((()
Можно это как-нибудь обойти? Или сделать проход по всей собранной уже странице с поиском и удалением всех элементов класса?
Попробуй вместо метода empty() применить remove()
$('.ymaps-overlay-stepwise-pane').remove();
Так же не работает, во всех остальных браузерах все нормально обоими методами((
Есть простенькая функция:
<script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> function removeElement(){ $('.ymaps-overlay-stepwise-pane').empty() } </script>
работает во всех браузерах(IE, Opera, Chrome), но не работает в FF(
Функция нужна для того, что удалить все элементы имеющие класс '.ymaps-overlay-stepwise-pane' и, соответственно, очистить яндекс-карту на своем сайте.
Вызов функции:
Может я что-то не так делаю? Или для фокса должно быть другое решение:(
…Страницы: 1