默认情况下,都是事件冒泡。
在火狐和谷歌中,可以在addEventListener时,将useCapture设置为true,则变成事件捕获。
冒泡从目标对象开始,向父级元素至window递进。
捕获从window底层逐级向目标对象传递
阻止事件冒泡
通常情况下我们都是一步到位,明确自己的事件触发源,并不希望浏览器自作聪明、漫无目的地去帮我们找合适的事件处理程序,即我们明确最精准目标,这种情况下我们不需要事件冒泡。另外通过对事件冒泡的理解,我们知道程序将做多较多额外的事情,这必然增大程序开销。还有一个重要的问题是:事件冒泡处理可能会激活我们本来不想激活的事件,导致程序错乱,甚至无从下手调试,这常成为对事件冒泡不熟悉程序员的棘手问题。所以必要时,我们要阻止事件冒泡。//阻止事件冒泡函数
function stopBubble(e){
if(e&&e.stopPropagation){
e.stopPropagation();
}
else{
window.event.cancleBubble=true;//IE中
}
}