`

javascript阻止事件冒泡和浏览器的默认行为

阅读更多
在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题.[兼容IE和FF]

 

1.阻止事件冒泡,使成为捕获型事件触发机制.

function stopBubble(e) {  
	//如果提供了事件对象,则这是一个非IE浏览器  
	if ( e && e.stopPropagation ){
		//因此它支持W3C的stopPropagation()方法  
		e.stopPropagation();  
	} else { 
		//否则,我们需要使用IE的方式来取消事件冒泡  
		window.event.cancelBubble = true;  
	} 
}

 

2.当按键后,不希望按键继续传递给如HTML文本框对象时,可以取消返回值.即停止默认事件默认行为.
	
//阻止浏览器的默认行为
function stopDefault( e ) {//console.log(e.preventDefault);
    //阻止默认浏览器动作(W3C)
    if ( e && e.preventDefault ){
		//alert(e.preventDefault);
        e.preventDefault();
	} else { //IE中阻止函数器默认动作的方式
		window.event.returnValue = false;
	}
    return false;
}



一般配合下面这个方法一起使用比较方便!
function addEvent(obj, sEvent, fn){
	if(obj.attachEvent){
		obj.attachEvent('on'+sEvent, fn);
	}else{
		obj.addEventListener(sEvent, fn, false);
	}
}







分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics