JQuery зависания / слайддаун проблема - PullRequest
0 голосов
/ 06 июня 2011

Я честно использую простой метод jquery для раскрывающегося списка.Но код не работает в Firefox 3.5 и ниже, ни в Opera.Является ли их альтернатива этим браузерам для hover или slideDown ??Отлично работает с webkit, firefox 3.6 и IE8 +

HTML

<ul id="menu">
  <li>
    <ul> <!-- this is the dropdown part -->
      <li><a href="#">#</a></li>
      <li><a href="#">#</a></li>
    </ul> <!-- end dropdown -->
  </li>
</ul>

jQuery

$('#menu li').hover(
    function () {
        $('ul', this).slideDown(250);
    },
    function () {
        $('ul', this).slideUp(250);         
    }
);

1 Ответ

0 голосов
/ 06 июня 2011

Адаптация вашего кода прекрасно работает для меня как в Chromium 11, так и в Firefox 4 (Ubuntu 11.04):

$('#menu > li:has("ul")').hover(
    function(){
        $(this).find('ul').slideDown();
    },
    function(){
        $(this).find('ul').slideUp();
    });

JS Fiddle .

Примечания:

  • $('#menu > li:has("ul")') - это просто более специфический селектор (он нацелен только на непосредственных потомков элемента #menu, которые оба li элементы и содержат ul элемент).
  • $(this).find('ul') совпадает с вашим селектором контекста ($('ul,this)) за исключением того, что внутренне jQuery все равно вызывает метод $(this).find():

Внутри контекст селектора реализован методом .find(), поэтому $('span', this) эквивалентно $(this).find('span').

Справка:

...