在javascript中如何取消事件冒泡
如果在javascript中只希望事件发生在它的目标而不是在它的父元素上,即取消它的冒泡事件的发生,该如何做?因为按照javascript发生事件的顺序,它由两个阶段:分别从根元素--父元素--目标元素(捕获阶段),再到父元素--根元素(冒泡阶段)。
IE浏览器和其他浏览器提供了不同的方式来取消事件冒泡行为。下列函数提供了两种方式取消事件冒泡:标准的W3C方式和非标准的IE方式。
1 function stopBubble(e){ 2 //如果传入事件对象且支持W3C的stopPropagation的用法 3 if(e && e.stopPropagation){ 4 //即为非IE浏览器 5 e.stopPropagation(); 6 }else{ 7 //IE方式取消事件冒泡 8 window.event.cancelBubble=true; 9 }