我有一个包含列表的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会发起一个事件呢?
答案 0 :(得分:9)
也许您会想要使用mouseenter / mouseleave而非mouseover / mouseout。
答案 1 :(得分:1)
我认为这是由于JavaScript的“事件冒泡”造成的。李的事件被冒泡到ul。在此处详细了解:http://www.quirksmode.org/js/events_order.html
这可能不是问题的直接答案,但我相信任何JS开发人员应该知道的事情。
答案 2 :(得分:0)
我认为这是因为你将mouseout绑定到a,mouseovering其子节点(