首頁 >web前端 >js教程 >JavaScript實作跨瀏覽器的新增及刪除事件綁定函數實例_javascript技巧

JavaScript實作跨瀏覽器的新增及刪除事件綁定函數實例_javascript技巧

WBOY
WBOY原創
2016-05-16 15:47:141060瀏覽

本文實例講述了JavaScript實作跨瀏覽器的新增及刪除事件綁定函數。分享給大家供大家參考。具體如下:

IE 的事件綁定函數是 attachEvent;而 Firefox, Safari 是 addEventListener;Opera 則兩種都支援。使用jQuery就可以使用簡單的bind(),或$().click()之類的函數來解決,而如果不使用JavaScript框架的時候,大家可是使用下面的封裝bind()函數。

新增事件綁定 bind()

/************************************
* 添加事件绑定
* @param obj  : 要绑定事件的元素
* @param type : 事件名称。不加 "on". 如 : "click" 而不是 "onclick".
* @param fn  : 事件处理函数
************************************/
function bind( obj, type, fn ){
  if( obj.attachEvent){
    obj['e'+type+fn]= fn;
    obj[type+fn]=function(){
     obj['e'+type+fn]( window.event);
    }
    obj.attachEvent('on'+type, obj[type+fn]);
  }else
    obj.addEventListener( type, fn,false);
}

例如為document新增一個點擊事件:

var fn=function(){
  alert("Hello, World!!");
};
bind(document,"click", fn);

刪除事件綁定 unbind()

unbind()對於上面的bind()函數

/************************************
* 删除事件绑定
* @param obj : 要删除事件的元素
* @param type : 事件名称。不加 "on". 如 : "click" 而不是 "onclick"
* @param fn : 事件处理函数
************************************/
function unbind( obj, type, fn ){
  if( obj.detachEvent){
    obj.detachEvent('on'+type, obj[type+fn]);
    obj[type+fn]=null;
  }else
    obj.removeEventListener( type, fn,false);
}

例如刪除第一個綁定的document點擊事件:

複製程式碼 程式碼如下:
unbind(document,"click",fn);
unbind(document,"click",fn);

希望本文所述對大家的javascript程式設計有所幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn