html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>点我</button> <br><br>
<a href="http://www.baidu.com">我链接到百度!</a>
<script src="a.js"></script>
<script>
var btn = document.querySelector("button");
var link = document.querySelector("a");
var body = document.querySelector("body");
var btnHandler = function(event){
console.log("我是btnHandler内部!");
console.log(EventUtil.getEvent(event).type);
console.log("我的target是" + EventUtil.getTarget(event));
console.log("我的current target是" + EventUtil.getEvent(event).currentTarget);
};
var linkHandler = function(event){
EventUtil.preventDefault(event);
};
var bodyHandler = function(event){
console.log("\n");
console.log("我是bodyHandler内部!");
console.log(EventUtil.getEvent(event).type);
console.log("我的target是" + EventUtil.getTarget(event));
console.log("我的current target是" + EventUtil.getEvent(event).currentTarget);
};
EventUtil.addHandler(btn,"click",btnHandler);
EventUtil.addHandler(link,"click",linkHandler);
EventUtil.addHandler(body,"click",bodyHandler);
</script>
</body>
<html>
a.js代码
var EventUtil = {
addHandler: function(elem, type, handler){
if (elem.addEventListener) {
elem.addEventListener(type, handler, false);
} else if (elem.attachEvent) {
elem.attachEvent("on" + type, handler);
} else {
elem["on" + type] = handler;
}
},
removeHandler: function(elem, type, handler){
if (elem.removeEventListener) {
elem.removeEventListener(type, handler, false);
} else if (elem.detachEvent) {
elem.detachEvent("on" + type, handler);
} else {
elem["on" + type] = null;
}
},
getEvent: function(event){
return event || window.event;
},
getTarget: function(event){
return event.target || window.event.srcElement;
},
preventDefault: function(event){
if (event.preventDefault) {
event.preventDefault();
}
else {
window.event.returnValue = false;
}
},
stopPropagation: function(event){
if (event.stopPropagation) {
event.stopPropagation();
}
else {
window.event.cancelBubble = true;
}
}
};