1.阻止冒泡
function stopBubble(e) { //如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) { //因此它支持W3C的stopPropagation()方法 e.stopPropagation(); }else{ //否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true; } }
当Event 对象的 cancelable为false时,表示没有默认行为,这时即使有默认行为,调用preventDefault也是不会起作用
2.取消默认事件(默认行为)
//阻止浏览器的默认行为 function stopDefault( e ) { //阻止默认浏览器动作(W3C) if ( e && e.preventDefault ) { e.preventDefault(); }else{ window.event.returnValue = false; } return false; }
w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;
3.return false
jq 下:既阻止默认行为又停止冒泡 return false
js 原生: 阻止默认行为 不会停止冒泡