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!