我写了一个代码,主要是想在鼠标移出ul范围时触发事件,但是我发现结果和我预期的不一样,鼠标往往还没移出ul范围,而仅仅是移出了其中的一个li范围时就触发了mouseout事件,求原因及解决方法
代码如下
<script type=text/javascript>
function show()
{
alert("abc");
}
</script>
<ul id=u1 onmouseout="show();">
<li><a href=#>aaaaaaaaa</a></li>
<li><a href=#>bbbbbbbbbbb</a></li>
<li><a href=#>cccccccccccc</a></li>
</ul>比如鼠标从第一个li往下移到第二个li的时候,就会触发mouseout事件,而我希望是彻底移出整个ul标签时才触发

解决方案 »

  1.   

    无语 ,刚发现问题,好像应该用mouseleave,而不是mouseout?
    mouseout是不是对子元素也应用的
      

  2.   

    mouseleave()是jQuery中的事件,不是标准事件吧?
      

  3.   

    这个是冒泡问题,我也没有想到好的解决方案 不过你可以这样试一试 
    <ul id=u1 onmouseout="show();">
    <li><a href=# onmouseout="event.stopPropagation();">aaaaaaaaa</a></li>
    <li><a href=# onmouseout="event.stopPropagation();">bbbbbbbbbbb</a></li>
    <li><a href=# onmouseout="event.stopPropagation();">cccccccccccc</a></li>
    </ul>
    对每一个li进行冒泡的阻止 这是firefox的代码