兼容性
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false)
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler)
} else {
element["on" + type] = handler
}
},
removeHandler: function (element, type, hander) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false)
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler)
} else {
element["on" + type] = null
}
}
}
DOM2級(jí)事件
addEventListener("click", function () {
// .
}, false)
false: 冒泡
true: 捕獲
removeEventListener("click", function () {
// .
}, false) // 不能是匿名函數(shù)
為同一個(gè)元素添加事件時(shí)猜扮,按照加載順序依次進(jìn)行勉吻。
IE:
attachEvent("onclick", function () {
// .
})
只支持冒泡
第一個(gè)參數(shù)使用onclick,
與DOM0區(qū)別: 作用于不用,DOM0下事件this指向所屬元素鲜漩,
attachEvent
會(huì)在全局作用域中運(yùn)行, this == window
與addEventListener區(qū)別: 可以為同一個(gè)元素添加多個(gè)事件處理程序集惋,
但attachEvent是以相反的順序被觸發(fā)