我有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>
答案 0 :(得分:1)
在onmouseout
上处理ul
有点棘手,是的。您需要处理event bubbling,因为onmouseout
可以在a
或li
触发并传播回ul
。因此,即使您要离开子元素,也会为ul
触发事件,除非明确阻止传播。
由于你有jQuery标签,我可以建议这个干净&amp;简单方法:
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);
});