javascript處理事件的一些相容寫法

來源:互聯網
上載者:User

綁定事件var addEvent = function( obj, type, fn ) {
  if (obj.addEventListener)
    obj.addEventListener( type, fn, false );
  else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj.attachEvent( "on"+type, function() {
      obj["e"+type+fn]();
    } );
  }
};

另一個實現var addEvent = (function () {
  if (document.addEventListener) {
    return function (el, type, fn) {
      el.addEventListener(type, fn, false);
    };
  } else {
    return function (el, type, fn) {
      el.attachEvent('on' + type, function () {
        return fn.call(el, window.event);
      });
    }
  }
})();

移除事件var removeEvent = function(obj, type, fn) {
  if (obj.removeEventListener)
    obj.removeEventListener( type, fn, false );
  else if (obj.detachEvent) {
    obj.detachEvent( "on"+type, obj["e"+type+fn] );
    obj["e"+type+fn] = null;
  }
}

載入事件與指令碼var loadEvent = function(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  }else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

阻止事件var cancelEvent = function(event) {
  event = event||window.event 
  if (event.preventDefault) {
    event.preventDefault( );
    event.stopPropagation( );
  } else {
    event.returnValue = false;
    event.cancelBubble = true;
  }
}

取得事件來源對象

相當於Prototype.js架構的Event.element(e)

var getTarget = function(event){
  event = event || window.event;
  var obj = event.srcElement ? event.srcElement : event.target;
  return obj
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.