5

检查这个简单的代码:

<ul onmouseout='alert(1)'>
    <li>aaaaaaaaaaaaaaaaaaaaaaaa</li>
    <li>bbbbbbbbbbbbbbbbbbbbbbbbb</li>
    <li>ccccccccccccccccccccccccc</li>
</ul>

onmouseout即使我在用鼠标UL遍历内部,也会触发该事件。LI

这是使用 FireFox 的,我怎样才能使它正确,所以当我真正离开时触发事件UL

4

2 回答 2

6

您可以为此使用 jQUery mouseout或 jQuery mouseleave函数,Mootools 也是如此。

编辑

只要离开一个 li 并转到下一个,就会触发 mouseout 事件,但仅在离开整个 div 时才会触发 mouseleave

$('#id').mouseleave(function(){
alert("left the div");  
});
于 2011-06-21T14:34:45.630 回答
3

问题是由于在 li 上触发 mouseout。所以你必须防止 li.mouseout 事件冒泡

阅读http://www.quirksmode.org/js/events_order.html

于 2011-06-21T14:37:50.323 回答