寫一個通用的事件偵聽器函式
阿新 • • 發佈:2020-08-09
const EventUtils = { // 視能力分別使用dom0||dom2||IE方式 來繫結事件 // 新增事件 addEvent: 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; } }, // 移除事件 removeEvent: 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; } }, // 獲取事件目標 getTarget: function(event) { return event.target || event.srcElement; }, // 獲取 event 物件的引用,取到事件的所有資訊,確保隨時能使用 event getEvent: function(event) { return event || window.event; }, // 阻止事件(主要是事件冒泡,因為 IE 不支援事件捕獲) stopPropagation: function(event) {if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } }, // 取消事件的預設行為 preventDefault: function(event) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } } };