javascript 阻止冒泡和浏览器的默认行为
在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题。
1 function stopBubble(e) { 2 //如果提供了事件对象,则这是一个非IE浏览器 3 if ( e && e.stopPropagation ) 4 //因此它支持W3C的stopPropagation()方法 5 e.stopPropagation(); 6 else 7 //否则,我们需要使用IE的方式来取消事件冒泡 8 window.event.cancelBubble = true; 9 }
2.当按键后或者点击一个链接后,不希望按键或者链接执行时,可以取消返回值.即停止默认事件默认行为
1 //阻止浏览器的默认行为 2 function stopDefault( e ) { 3 //阻止默认浏览器动作(W3C) 4 if ( e && e.preventDefault ) 5 e.preventDefault(); 6 //IE中阻止函数器默认动作的方式 7 else 8 window.event.returnValue = false; 9 return false; 10 }
示例 : 点击页面的任何URL链接 不跳转。
1 var links=document.getElementsByTagName('a'); 2 for(var i=0;i<links.length;i++){ 3 links[i].onlick=function(e){ 4 alert('我不跳转,点我也没用'); 5 stopDefault(e) 6 } 7 }