<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>事件取消</title>
</head>
<body>
<div >
<button >boxChild</button>
</div>
<script type="text/javascript">
//事件的取消
var utilStopHandler = {
cancelEvent:function(event){//取消事件
var event = event || window.event;
if(event.preventDefault){
event.preventDefault();
}else if(event.returnValue){
event.returnValue = false;
}else{
return false;
}
},
stopEvent:function(){//取消事件的传播
var event = event || window.event;
if(event.stopPropagation){
event.stopPropagation();
}else if(event){
event.cancelBubble = false;
}else{
return false;
}
}
}
//封装自己的 句柄事件
var myUtilEvent = {
myAddHandler:function(element, eType, hanlder){//添加句柄
if(element.addEventListener){//ie8及之前版本外的所有浏览器支持的标准事件模型
element.addEventListener(eType, hanlder, false);
}else if(element.attachEvent){
element.attachEvent(eType, hanlder);//兼容ie9以下版本
}else{
element["on" + eType] = hanlder;
}
},
myRemoveHandler:function(element, eType, hanlder){//删除句柄
if(element.removeEventListener){
element.removeEventListener(eType, hanlder, false);
}else if(element.detachEvent){
element.detachEvent("on" + eType, hanlder);
}else{
element["on" + eType] = null;
}
}
}
var handler = function(e){
alert("thanks too!");
}
var box = document.getElementById("box");
var boxChild = document.getElementById("boxChild");
myUtilEvent.myAddHandler(box,"click", handler);
myUtilEvent.myAddHandler(boxChild,"click", function(){
alert("thanks!");
utilStopHandler.stopEvent(boxChild);
});
</script>
</body>
</html>