当li在li之间导航时,jquery为ul跳出鼠标

时间:2012-12-04 01:20:49

标签: javascript jquery list mouse

我有一个包含列表的html页面

<ul id="mylist">
  <li><a href="#">item 1</a></li>
  <li><a href="#">item 2</a></li>
</ul>

然后是一些jquery代码,用于在鼠标列表中触发事件

$('#mylist').mouseout(function(evt) {
    $(this).fadeOut('fast');
});

问题在于,当我在item1和item2之间移动鼠标时(从item1垂直开始并向下移动到item2),鼠标输出将被触发($ this引用ul)。即使我不认为我已经离开了名单,为什么ul会发起一个事件呢?

3 个答案:

答案 0 :(得分:9)

也许您会想要使用mouseenter / mouseleave而非mouseover / mouseout。

答案 1 :(得分:1)

我认为这是由于JavaScript的“事件冒泡”造成的。李的事件被冒泡到ul。在此处详细了解:http://www.quirksmode.org/js/events_order.html

这可能不是问题的直接答案,但我相信任何JS开发人员应该知道的事情。

答案 2 :(得分:0)

我认为这是因为你将mouseout绑定到a,mouseovering其子节点(

  • )将触发mouseout(如果我是正确的)。正如Esthete所提到的,用div包装它并将鼠标悬停到该div上更简单直接。