1. 程式人生 > >JS中註冊事件的三種方式及相容性處理

JS中註冊事件的三種方式及相容性處理

  1. 第一種(所有瀏覽器都支援,但是無法給同一個物件的同一個事件註冊多個事件處理函式)
 btn.onclick = function() {
            alert("111")
   		}
 btn.onclick = function() {
            alert("222")
		}
  1. 第二種(dom標準中的方法,存在瀏覽器相容性問題,IE9以後支援)
 btn.addEventListener("click", function() {
            alert("111");
        })
 btn.addEventListener(
"click", function() { alert("222"); })
  1. 第三種(第一個引數,事件的名稱前要加 on。存在瀏覽器相容性問題,IE的老版本特有的方法,IE6-10支援)
 btn.attachEvent('onclick', function () {
      alert('111');
    });

 btn.attachEvent('onclick', function () {
      alert('222');
    });

相容性處理

//eventName,不帶on(如:click,mouseover)
        function
addEventListener(element, eventName, fn) { //判斷當前瀏覽器是否支援addEventListener方法 if (element.addEventListener) { element.addEventListener(eventName, fn); } else if (element.attachEvent) { element.attachEvent(eventName, fn); } else
{ element["on" + eventName] = fn; //相當於element.onclick=fn; } }