Heim >Web-Frontend >js-Tutorial >JavaScript implementiert das browserübergreifende Hinzufügen und Löschen von Ereignisbindungsfunktionen. Beispiele_Javascript-Fähigkeiten

JavaScript implementiert das browserübergreifende Hinzufügen und Löschen von Ereignisbindungsfunktionen. Beispiele_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:47:141059Durchsuche

Das Beispiel in diesem Artikel beschreibt die JavaScript-Implementierung von browserübergreifenden Funktionen zum Hinzufügen und Löschen von Ereignisbindungen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Ereignisbindungsfunktion von IE ist attachmentEvent; während Firefox und Safari beides unterstützen; Mit jQuery können Sie einfaches bind() oder Funktionen wie $().click() verwenden, um das Problem zu lösen. Wenn Sie kein JavaScript-Framework verwenden, können Sie die folgende gekapselte bind()-Funktion verwenden.

Ereignisbindung bind() hinzufügen

/************************************
* 添加事件绑定
* @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);
}

Fügen Sie beispielsweise ein Klickereignis zum Dokument hinzu:

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

Ereignisbindung löschen unbind()

unbind() für die obige bind()-Funktion

/************************************
* 删除事件绑定
* @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);
}

Löschen Sie beispielsweise das erste Klickereignis für gebundene Dokumente:

Code kopieren Der Code lautet wie folgt:
unbind(document,"click",fn);

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn