离开每个li标签时运行一个函数但鼠标输出是在ul标签中定义的

时间:2013-07-06 08:31:43

标签: javascript jquery

我有ul标记,其中包含onmouseout个功能。 ul包含4个li元素。 我希望在离开ul时调用一个函数,但是当我从一个li转到另一个li时会调用它。 我的错误在哪里?

我的清单是:

<ul id="settings" style="position:fixed;" onmouseout="alert(20);">
<li><a href="#">111</a></li>
<li><a href="#">222</a></li>
<li><a href="#">333</a></li>
<li><a href="#">444</a></li>
</ul>

1 个答案:

答案 0 :(得分:1)

onmouseout上处理ul有点棘手,是的。您需要处理event bubbling,因为onmouseout可以在ali触发并传播回ul。因此,即使您要离开子元素,也会为ul触发事件,除非明确阻止传播。

由于你有jQuery标签,我可以建议这个干净&amp;简单方法:

Demo

HTML:

<ul id="settings" style="position:fixed;">
    <li><a href="#">111</a></li>
    <li><a href="#">222</a></li>
    <li><a href="#">333</a></li>
    <li><a href="#">444</a></li>
</ul>

JS:

$("#settings").mouseleave(function() {
    // Better to debug with console.log()
    // alert(20); 
    console.log(20);
});