Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erklärung von Bindungsereignissen und Entbindungsereignissen in js

零下一度
Freigeben: 2017-04-28 09:48:25
Original
1542 Leute haben es durchsucht

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("到处潮湿");
      }
Nach dem Login kopieren

attachEvent-Methode

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

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("春雨绵绵");
      }
Nach dem Login kopieren

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);
      }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage