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

JavaScript事件问题

当你进入一个dom A元素时(当前dom元素已绑定onmouseover事件)

是先进入当前dom A元素,在子元素,,在子子元素,依次类推 ,就像你从家外面回到卧室一样,先进单元楼道门,在进入自己的家门,然后卧室门 ?你会发现类似开门事件的onmouseover事件,只要你打开一扇门事件就会被触发 ,然后再向上依次冒泡传递给外层dom A元素,你已绑定的dom A元素得onmouseover的就会又被触发。



在这里使用onmouseover事件的朋友就该注意了(尤其是绑定的元素内部存在很多子元素时),如果你仅仅是处理隔行变色的话,那么就当我没说,如果进行数据处理如 自动翻译 等 就得小心了,你还会发现类似绑定在外层dom A元素上的 ?onmouseover事件会被多次重复调用。



依次类推当你离开卧室的时候的关门事件就像onmouseout

使用onmouseout事件的朋友们进行特殊处理数据时的就该注意了。


如果你事件onmouseout绑定到外层元素dom A?就像是单元门,内部元素的关门事件onmouseout会依次向上事件冒泡传递给外层dom A元素,调用绑定在外层dom A元素上的onmouseout事件,如果外层dom元素同时绑定了onmouseout 和onmouseover, 那么当你离子元素事件时onmouseout冒泡传递给外层dom元素时,调用已绑定onmouseout后。 ?同时由于你没有移出dom A ?,而鼠标进入了父辈元素或其他子元素,那么其他兄弟元素的或父辈元素的onmouseover又会再次被冒泡到外层dom A元素。


冒泡上利用者两个事件进行处理的效果很奇妙


可能Ie考虑到这一点了Ie推出了两个新方法mouseenter(类似onmouseover)和mouseleave(类似onmouseout)事件,这两个事件不会被冒泡

?