JavaScript 阻止冒泡和捕获

    防止冒泡和捕获: W3C的方法是e.stopPropagation(), IE的方法是:e.cancelBubble = true。 取消默认事件:W3C的方法是e.preventDefault(),IE的方法是e.returnValue = false。 JavaScript的return false:只会阻止默认行为,不会停止冒泡。 var a = document.getElementById("testB"); a.onclick = function(){ return false; }; JQuery中return false:既停止冒泡又阻止默认行为。
$("#testC").on(click,function(){
    	return false;
    })

总结使用方法

    1.当需要停止冒泡行为时,可以使用:
function stopBubble(e) { 
    //如果提供了事件对象,则这是一个非IE浏览器 
    if ( e && e.stopPropagation ) 
        //因此它支持W3C的stopPropagation()方法 
        e.stopPropagation(); 
    else 
        //否则,我们需要使用IE的方式来取消事件冒泡 
        window.event.cancelBubble = true; 
    }
```
// 或者可以更加简洁
function stopBubble() {
	window.event? window.event.cancelBubble = true : e.stopPropagation();
}
```
    2.当需要阻止默认行为时: function stopDefault(e) { //阻止默认浏览器行为(w3c) if(e && e.preventDefault) { e.preventDefault(); }else { window.event.returnValue = false; //IE中阻止浏览器默认动作的方式 } return false; }
经验分享 程序员 微信小程序 职场和发展