Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung von Bindungsereignissen und Entbindungsereignissen in js

Detaillierte Erklärung von Bindungsereignissen und Entbindungsereignissen in js

零下一度
零下一度Original
2017-04-28 09:48:251579Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Kenntnisse über js-Bindungsereignisse und -Entbindungsereignisse vorgestellt. Hat einen sehr guten Referenzwert. Werfen wir einen Blick mit dem Editor unten

Das Binden mehrerer Ereignisse in js verwendet zwei Methoden: attachmentEvent und addEventListener, aber es gibt Unterschiede zwischen diesen beiden Methoden

nur Methode „attachEvent“. unterstützt IE678, nicht kompatibel mit anderen Browsern

addEventListener-Methode kompatibel mit Firefox und Google, nicht kompatibel mit IE8 und niedriger

addEventListener-Methode

p.addEventListener('click',fn);

p.addEventListener('click',fn2);
function fn(){ console.log("春雨绵绵"); }

function fn2(){
        console.log("到处潮湿");
      }

attachEvent-Methode

p.attachEvent('onclick',fn);
p.attachEvent('onclick',fn2);
function fn(){ console.log("春雨绵绵"); }
function fn2(){
        console.log("到处潮湿");
      }

Hinweis: Das von der Methode attachmentEvent gebundene Ereignis ist mit on, und das von addEventListener gebundene Ereignis ist ohne on

Ich habe unten eine Methode geschrieben, die mit IE, Firefox und Google kompatibel ist

var p=document.getElementsByTagName("p")[0];
      addEvent('click',p,fn)
      function addEvent(str,ele,fn){
        ele.attachEvent?ele.attachEvent('on'+str,fn):ele.addEventListener(str,fn);
      }
      function fn(){
        console.log("春雨绵绵");
      }

Dies löst das Kompatibilitätsproblem perfekt

Wenn es ein Bindungsereignis gibt, muss es auch ein Entbindungsereignis geben, aber unverbindliche Bindungsereignisse sind dasselbe wie Bindungsereignisse. Der böse IE wird weiterhin Spezialisierungen vornehmen

detachEvent-Methode unterstützt nur IE678 und ist nicht mit anderen Browsern kompatibel

removeEventListener-Methode Kompatibel mit Firefox und Google, nicht kompatibel mit IE8 und niedriger

detachEvent-Methode schreiben:

ele.detachEvent("onclick",fn);

So schreibe ich RemoveEventListener:

ele.removeEventListener("click",fn);

Ich habe unten eine Kompatibilitätsversion geschrieben. Die Methode dient als Referenz Die Implementierung ist sehr einfach

function remove(str,ele,fn){
        ele.detachEvent?ele.detachEvent("on"+str,fn):ele.removeEventListener(str,fn);
      }

Hinweis: Unabhängig davon, ob es sich um ein Bindungsereignis „attachEvent“ oder ein Löschereignis „detachEvent“ handelt, muss „on“ hinzugefügt werden, „removeEventListenser“ und „addEventListenser“ sind nicht erforderlich. Add-on

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von Bindungsereignissen und Entbindungsereignissen in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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