跨浏览器DOM事件方法 发表于 2018-10-25 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566var 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, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else if (element.detachEvent) { element.detachEvent("on" + type, handler); } else { element["on" + type] = null; } } // 获取事件对象 getEvent: function (event) { return event ? event : window.event; }, // 获取目标对象 getTarget: function (event) { return event.target || event.srcElement; }, // 阻止默认事件 preventDefault: function (event) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } }, // 阻止(冒泡)事件传播 stopPropagation: function (event) { if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } }, // 获取鼠标按键 getButton: function (event) { if (document.implementation.hasFeature("MouseEvents", "2.0")) { return event.button; } else { switch (event.button) { case 0: case 1: case 3: case 5: case 7: return 0; case 2: case 6: return 2; case 4: return 1; } } }}