var EventUtil = {
//根据情况分别使用dom2 || IE || dom0方式 来添加事件
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
}
},
//根据情况分别使用dom2 || IE || dom0方式 来删除事件
removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false)
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler)
} else {
element["on" + type] = null
}
},
//根据情况分别获取DOM或者IE中的事件对象,事件目标,阻止事件的默认行为
getEvent: function(event) {
return event || window.event
},
// 获取事件DOM对象
getTarget: function(event) {
return event.target || event.srcElement
},
// 阻止默认事件
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
}
},
}
var btn = document.getElementById("myBtn"),
handler = function(event) {
console.log("Clicked", event)
console.log(EventUtil.getTarget(event))
EventUtil.preventDefault(event)
}
EventUtil.addHandler(btn, "click", handler)
EventUtil.removeHandler(btn, "click", handler)
跨浏览器的事件监听函数
最新推荐文章于 2024-03-29 08:50:15 发布