dom结构里,点击子元素后,点击事件会自动向其上层父元素传递,直至document。刚开始看到这个理论觉得很奇怪,后来细想一下,这是必须的。比喻我们在document上绑定了一个事件,我们怎么触发呢,就是在页面上随便位置点一下就行了,那么我们点的这个位置可能是一个div,或者是一个p,如果没有事件传播,dccument就不会触发这个事件了。
阻止事件冒泡
什么时候要用到阻止事件冒泡,当页面结构比较复杂时,阻止冒泡可以提高页面性能,如果你只想在当前dom上执行事件的话,没必要让他传递到父层上去。另外在平时用到比较多的popup也会用到这个,弹出一个层div1,当点击除弹出层外的其它位置时,关闭这个popup。如果打算在document上绑定这个close事件时,那就需要在div1上阻止单击事件的冒泡,否则点击了div1也会关闭这个Popup,因为事件会冒泡到document。
IE:
window.event.cancelBubble = true
FF:
e.stopPropagation()
更多的内容请阅读以下链接:
http://www.blueidea.com/tech/web/2007/4628.asp