var EventUtil = {
//dom0 ||dom2 ||IE绑定事件
addHandler:
function(ele, handler, type){
if(ele.addEventListener){
ele.addEventListener(type, handler, false);
}else if(ele.attachEvent){
ele.attachEvent(type, handler);
}else{
ele["on"+type]=handler;
//想一下 input.onclick = function(){}
}
}
removeHandler:
function(ele, type, handler){
if (ele.removeEventListener) {
ele.removeEventListener(type, handler, false);
}else if (ele.detachEvent) {
ele.detachEvent(type, handler);
}else{
ele["on"+type]=null;
}
}
//获取事件对象
getEvent:
function(event){
return event? event: window.event;
}
//获取事件目标
getTarget:
function(target){
return event.target || event.srcEvent;
}
//上一步 写 return event || window.event; 可以吗?
//阻止默认行为
preventDefault:
function(event){
if (event.preventDefault) {
event.preventDefault();
}else{
event.returnValue = false;
}
}
//取消dom 或 IE中的 事件冒泡
stopPropagation:
function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
//stopPropation() 忘记加()
//cancelBubble = true;
}
//因为 传入的是 "type",所以 写的时候不用加双引号
//只有 addEventListener 和 removeEventListener 有第三个参数 false或者true
//
// 注意:绑定事件、移出事件 的参数,获取事件、阻止默认行为的 参数 是event,获取 事件目标的 参数是 target,
IE:
attachEvent
detachEvent
window.event
returnVaule = false
cancelBubble = true
event.srcElement
event.target(火狐)
https://blog.csdn.net/github_34514750/article/details/53084034
注意:
addEventListener 和 removeEventListener (type, handler, false) 第三个 参数 都是false
摘抄:
可以选择是在捕获阶段还是冒泡阶段绑定事件处理函数,这是通过addEventListener()方法实现的,如果这个函数的最后一个参数是true,则在捕获阶段绑定函数,反之false,在冒泡阶段绑定函数。