Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über gängige Methoden der JavaScript-Ereignisbindung und Analyse ihrer Vor- und Nachteile

Eine kurze Diskussion über gängige Methoden der JavaScript-Ereignisbindung und Analyse ihrer Vor- und Nachteile

高洛峰
高洛峰Original
2016-12-08 13:15:231510Durchsuche

Traditionelle Methode

element.onclick = function(e){
 
   // ...
 
 };

1. Vorteile der traditionellen Bindung

Sie ist sehr einfach und stabil und gewährleistet, dass sie funktioniert für Sie Funktioniert in verschiedenen Browsern gleich

Bei der Verarbeitung von Ereignissen bezieht sich das Schlüsselwort this auf das aktuelle Element, was sehr hilfreich ist

2 Nachteile der herkömmlichen Bindung

Das Die herkömmliche Methode wird nur beim Event-Bubbling ausgeführt, statt beim Erfassen und Bubbling.

Ein Element kann jeweils nur an einen Event-Handler gebunden sein. Die neu gebundene Event-Handler-Funktion überschreibt die alte Event-Handler-Funktion

Event-Objektparameter (e) ist nur für Nicht-IE-Browser verfügbar

W3C-Methode

element.addEventListener('click', function(e){
 
   // ...
 
 }, false);

1. Vorteile der W3C-Bindung

Diese Methode unterstützt sowohl die Erfassungs- als auch die Bubbling-Phase der Ereignisverarbeitung. Die Ereignisphase hängt von der letzten Parametereinstellung von addEventListener ab: false (Blase) oder true (Erfassung).

Im Ereignishandler verweist das Schlüsselwort this auf das aktuelle Element.

Ereignisobjekte können immer über das erste Argument (e) der Handlerfunktion erfasst werden.

Sie können mehrere gewünschte Ereignisse an dasselbe Element binden, ohne zuvor gebundene Ereignisse zu überschreiben

2. Nachteile der W3C-Bindung

IE unterstützt es nicht, Sie müssen IEs verwenden stattdessen die Funktion attachmentEvent verwenden.

IE-Methode

element.attachEvent('onclick', function(){
 
    // ...
 
  });

1. Vorteile der IE-Methode

Sie können dasselbe Element an dasselbe binden Element gleichzeitig, ohne zuvor gebundene Ereignisse zu überschreiben.

2. Nachteile der IE-Methode

IE unterstützt nur die Bubbling-Phase der Ereigniserfassung

Das Schlüsselwort this in der Ereignisüberwachungsfunktion verweist auf das Fensterobjekt, nicht auf das aktuelles Element (ein großes Manko des IE)

Das Ereignisobjekt existiert nur im window.event-Parameter

Das Ereignis muss in der Form ontype benannt werden, zum Beispiel onclick statt click

Nur ​​IE ist verfügbar. Sie müssen den addEventListener von W3C in Nicht-IE-Browsern verwenden

Dean Edwards' Lösung (addEvent/removeEvent-Bibliothek)

1. Die Vorteile von addEvent

können in allen Browsern genutzt werden Funktioniert auch mit älteren Browsern ohne jegliche Unterstützung

Dieses Schlüsselwort kann in allen Bindungsfunktionen verwendet werden und zeigt auf das aktuelle Element

neutralisiert alle Browser, die das Standardverhalten und verschiedene browserspezifische Funktionen verhindern Event-Bubbling verhindern

Unabhängig vom Browsertyp wird das Event-Objekt immer als erstes Objekt übergeben

2 Nachteile von addEvent

Funktioniert nur in der Bubbling-Phase (wie es nutzt stark die traditionelle Art der Ereignisbindung)


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