日期:2014-05-16  浏览次数:20377 次

关于ul标签onmouseout事件的问题
我写了一个代码,主要是想在鼠标移出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标签时才触发

------解决方案--------------------
引用:
这个应该就是冒泡了吧 。

事件冒泡这个事情还真是麻烦啊,以前没碰到过,这几天泡在论坛里已经碰到好几个由事件冒泡引起的问题了,看来得深入了解一下,现在只是知道有这么回事,然后用网上搜索来的一段阻止冒泡的代码来解决问题,但还是不太明白为什么会出现这样的问题。
------解决方案--------------------
这个是冒泡问题,我也没有想到好的解决方案 不过你可以这样试一试 
<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的代码