jQuery hover / slideDown问题

时间:2011-06-06 14:55:08

标签: jquery hover

我正在使用简单的jquery方法来下拉列表。但代码不能在Firefox 3.5及更低版本和Opera中使用。他们是这些浏览器的替代品,用于悬停还是幻灯片?它在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 :(得分:0)

对于我来说,在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元素和< / em>包含ul元素。)
  • $(this).find('ul')与您的上下文选择器($('ul,this))相同,除了内部jQuery无论如何调用$(this).find()方法:
  

在内部,选择器上下文使用.find()方法实现,因此$('span', this)等同于$(this).find('span')

参考: