1. 程式人生 > 實用技巧 >寫一個通用的事件偵聽器函式

寫一個通用的事件偵聽器函式

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; } } };