Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№108-06-2012 17:15:32

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

jQuery не работает в FF

Есть простенькая функция:

Выделить код

Код:

<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' и, соответственно, очистить яндекс-карту на своем сайте.
Вызов функции:

Выделить код

Код:

<a href="#" onclick="removeElement()">Очистить карту</a>

Может я что-то не так делаю? Или для фокса должно быть другое решение:(

Отредактировано mauzer17 (08-06-2012 17:16:39)

Отсутствует

 

№208-06-2012 18:43:58

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 228
UA: Palemoon 12.0

Re: jQuery не работает в FF

Попробуй вместо метода empty() применить remove()
$('.ymaps-overlay-stepwise-pane').remove();

Отсутствует

 

№309-06-2012 10:27:17

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

Re: jQuery не работает в FF

questman пишет:

Попробуй вместо метода empty() применить remove()
$('.ymaps-overlay-stepwise-pane').remove();

Так же не работает, во всех остальных браузерах все нормально обоими методами((

Отсутствует

 

№411-06-2012 00:40:40

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11770

Re: jQuery не работает в FF

Тема перенесена из форума «Firefox» в форум «Разработка».


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№511-06-2012 19:22:56

Astronix
Участник
 
Группа: Members
Зарегистрирован: 23-07-2010
Сообщений: 83
UA: Firefox 14.0

Re: jQuery не работает в FF

Проверил, у меня работает и 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>

Отредактировано Astronix (11-06-2012 19:27:19)

Отсутствует

 

№613-06-2012 12:22:09

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

Re: jQuery не работает в FF

Astronix пишет:

Проверил, у меня работает и 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 коде такого класса нет, то есть грузиться код яндекс-карт, который создает метки на карте имеющий этот класс. Прямого объявления как у вас примере нет. Скорее всего проблема в этом, т.к. при инициализации класса как у вас у меня все так же заработало(стирается только квадрат, метки остаются((()
Можно это как-нибудь обойти? Или сделать проход по всей собранной уже странице с поиском и удалением всех элементов класса?

Отредактировано mauzer17 (13-06-2012 12:23:30)

Отсутствует

 

№713-06-2012 16:02:24

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

Re: jQuery не работает в FF

Наверное стоит привести полный код страницы благо он не очень большой -

скрытый текст

Выделить код

Код:

<!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);
                });
                  };

                myMap.controls.add("mapTools")
                .add("zoomControl")                 
                .add("typeSelector")               
map.controls.add(searchControl, { left: '40px', top: '10px' });
            };
            function DeleteYMap(){ 
    try{ 
    var Elements=document.getElementsByTagName("ymap"); 
    for(var i=0;i<Elements.length;i++){ 
    if (Elements[i].className=="ymaps-overlay-stepwise-pane"){ 
        Elements[i].innerHTML=""; 
        }; 
        }; 
        } catch(ex){alert(ex)}; 
        }; 
    document.getElementById("DelMap").оnclick=DeleteYMap;

    function removeElement(elementId){
        element = document.document.getElementsByClassName(elementId);
        if (element) {
            element.parentNode.removeChild(element);
        }
    }
    
function removeElement(element){
   $(element).empty();
}

function check(el){
   $(el).attr("checked","checked");
}

function uncheck(el){
    $("input:checkbox").removeAttr("checked");
}

function show_alert(el, mp){
  if (el.checked) {}
  else
  {
    check(el);
    loadXml(mp, el)
  }
}
</script>
</head>
<body style="line-height: 0 px;">
<h2>Карта садов города Саратова</h2>
<div id="map" style="width: 600px; height: 500px; line-height: 11px; margin: 10px 0 0 -1px"></div>
<div style="margin: -500px 0 0 605px">
    Сады нашего города</br>
    <table class="form">
    <tr>
        <td>
            <input id="GorKom" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(GorKom, 'http://edu.sarkomobr.ru/media/cms_page_media/2257/Gal2uC6FnzXFEGWcfmAJCs1nlRy809Ns_11.xml'); return false;">Городской комитет</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Zavod" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Zavod, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/zavod.xml'); return false;">Заводской</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Frunze" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Frunze, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/frunze.xml'); return false;">Фрунзенский</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Lenin" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Lenin, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/lenin_2.xml'); return false;">Ленинский</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Oktab" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Oktab, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/oktab.xml'); return false;">Октябрьский</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Kirov" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Kirov, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/kirov_3.xml'); return false;">Кировский</a>
        </td>
    </tr>
    <tr>
        <td>
            <input id="Vol" type="checkbox" disabled/>
            <a href="#" onclick="show_alert(Vol, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/vol.xml'); return false;">Волсжкий</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#" onclick="show_alert(GorKom, 'http://edu.sarkomobr.ru/media/cms_page_media/2257/Gal2uC6FnzXFEGWcfmAJCs1nlRy809Ns_11.xml'); show_alert(Zavod, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/zavod.xml'); show_alert(Frunze, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/frunze.xml'); show_alert(Vol, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/vol.xml'); show_alert(Lenin, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/lenin_2.xml'); show_alert(Oktab, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/oktab.xml'); show_alert(Kirov, 'http://sartest.edu.sarkomobr.ru/media/cms_page_media/2257/kirov_3.xml'); return false;">Показать всё</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#" onclick="removeElement('.ymaps-overlay-stepwise-pane'); uncheck('123'); return false;">Очистить карту</a>
        </td>
    </tr>
</table>
</div>
</body>
</html>


Возможно уважаемые мастера web'a и FF подскажут, что не хватает для корректной работы?

Отсутствует

 

№815-06-2012 09:38:40

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

Re: jQuery не работает в FF

И тишина, и мертвые с косами стоят((((
а если по теме, подскажите хак для js, что бы дополнительная функция отрабатывала ТОЛЬКО в FF?

Отсутствует

 

№915-06-2012 14:34:13

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 13.0
Веб-сайт

Re: jQuery не работает в FF

У вас какая-то адская каша в скриптах
С одной стороны html5, jQuery и т.п., а с другой обращение к элементам по id, что является устаревшим уже лет десять.
В общем, почините сначала ошибки в своём скрипте (ctrl-shift-j показывает консоль ошибок) а потом начинайте пенять на jQuery.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№1015-06-2012 15:25:41

mauzer17
Участник
 
Группа: Members
Зарегистрирован: 08-06-2012
Сообщений: 6
UA: Chrome 19.0

Re: jQuery не работает в FF

Lynn пишет:

У вас какая-то адская каша в скриптах
С одной стороны html5, jQuery и т.п., а с другой обращение к элементам по id, что является устаревшим уже лет десять.
В общем, почините сначала ошибки в своём скрипте (ctrl-shift-j показывает консоль ошибок) а потом начинайте пенять на jQuery.

Да, я посмотрел все ошибки - почти все генерируются кодом яндекс-карт,(то есть именно этот код был в примерах у яндекса, модификаций - только то, что там он инициализировался при запуске, а у меня по клику на функцию), и одна ошибка генерируется jQ - по крайней мере, такой функции в исходном коде у меня нет, а отладчик хрома вообще не видит такой ошибки.
А на счет обращения по id - разве это не самый надежный и простой способ?
Я вообще-то не занимаюсь профессиональной разработкой сайтов, только мелочи, просто решили сделать карту дет.садиков для родного города.


okkamas_knife пишет:

mauzer17 пишет:

а если по теме, подскажите хак для js, что бы дополнительная функция отрабатывала ТОЛЬКО в FF?

определяем браузер и запускаем/не запускаем.
alert(navigator.appCodeName)
до кучи

Спасибо, сейчас посмотрю!

Отсутствует

 

№1102-09-2013 17:11:01

Electra2005
Участник
 
Группа: Members
Зарегистрирован: 09-11-2008
Сообщений: 21
UA: Firefox 24.0
Веб-сайт

Re: jQuery не работает в FF

автор как решили проблему?

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]