Die JS-Methoden addEventListener() und attachEvent() implementieren Registrierungsereignisse

Die JS-Methoden addEventListener() und attachEvent() implementieren Registrierungsereignisse

Im DOM-Ereignismodell von JavaScript werden Ereignisse durch Aufrufen der Methode addEventListener() eines Objekts registriert. Die Verwendung ist wie folgt:
element.addEventListener(String-Typ, Funktionslistener, Boolescher Wert useCaptrue);

Die Parameter werden wie folgt beschrieben:

  • Typ: Der Typname des registrierten Ereignisses. Ereignistypen unterscheiden sich von Ereignisattributen. Ereignistypnamen haben nicht das Präfix „on“. Beispielsweise ist für das Ereignisattribut „onclick“ der entsprechende Ereignistyp „click“.
  • Listener: Abhörfunktion, d. h. Ereignisverarbeitungsfunktion. Diese Funktion wird aufgerufen, wenn ein Ereignis des angegebenen Typs eintritt. Wenn diese Funktion aufgerufen wird, ist das einzige Argument, das ihr standardmäßig übergeben wird, das Ereignisobjekt.
  • useCaptrue: ist ein Boolescher Wert. Wenn der Wert wahr ist, wird der angegebene Ereignishandler während der Erfassungsphase der Ereignisausbreitung ausgelöst. Wenn der Wert falsch ist, wird der Ereignishandler während der Bubbling-Phase ausgelöst.

Beispiel 1

Das folgende Beispiel verwendet addEventListener(), um Klickereignisse für alle Schaltflächen zu registrieren. Rufen Sie zuerst die Methode getElementsByTagName() des Dokuments auf, um alle Schaltflächenobjekte zu erfassen. Verwenden Sie dann die for-Anweisung, um den Schaltflächensatz (btn) zu durchlaufen, und registrieren Sie mit der Methode addEventListener() für jede Schaltfläche eine Ereignisfunktion, um den vom aktuellen Objekt angezeigten Text abzurufen.

<button id="btn1" onclick="btn1();">Schaltfläche 1</button>
<button id="btn2" onclick="btn2(event);">Schaltfläche 2</button>
<Skript>
  var btn = document.getElementsByTagName("button"); //Alle Schaltflächen erfassen for(var i in btn){ //Die Schaltflächensammlung durchlaufen btn[i].addEventListener("click", function(){
    Alarm (dieses.innerHTML);
  }, true); //Registriere eine Ereignisbehandlungsfunktion für jedes Schaltflächenobjekt und definiere die Antwort in der Erfassungsphase}
</Skript> 

Zeigen Sie eine Vorschau im Browser an und klicken Sie auf verschiedene Schaltflächen. Der Browser zeigt automatisch den Schaltflächennamen an. Der Effekt ist in der Abbildung dargestellt:

Verwenden Sie die Methode addEventListener(), um dieselbe Ereignisbehandlungsfunktion für mehrere Objekte oder mehrere Ereignisbehandlungsfunktionen für dasselbe Objekt zu registrieren. Das Registrieren mehrerer Ereignishandler für dasselbe Objekt ist für die modulare Entwicklung sehr nützlich.

Beispiel 2

Im folgenden Beispiel werden zwei Ereignisse für Absatztext registriert: Mouseover und Mouseout. Wenn der Cursor über den Absatztext bewegt wird, wird er mit einem blauen Hintergrund angezeigt. Wenn der Cursor aus dem Absatztext herausbewegt wird, wird er automatisch mit einem roten Hintergrund angezeigt. Auf diese Weise ist es nicht erforderlich, die Dokumentstruktur zu zerstören und dem Absatztext mehrere Ereignisattribute hinzuzufügen.

<p id="p1">Mehrere Ereignisse für ein Objekt registrieren</p>
<Skript>
  var p1 = document.getElementById("p1"); //Erfassen Sie den Handle des Absatzelements p1.addEventListener("mouseover", function () {
    dieser.Stil.Hintergrund = "blau";
  }, true); //Registriere den ersten Eventhandler für das Absatzelement p1.addEventListener("mouseout", function () {
    dieser.Stil.Hintergrund = "blau";
  }, true); //Registriere den zweiten Eventhandler für das Absatzelement</script>

Das IE-Ereignismodell verwendet die Methode attachEvent(), um Ereignisse zu registrieren. Die Verwendung ist wie folgt:

element.attachEvent(etype, Ereignisname)

Die Parameterliste lautet wie folgt:

  • etype: Legen Sie den Ereignistyp fest, z. B. onclick, onkeyup, onmousemove usw.
  • eventName: Legen Sie den Ereignisnamen fest, der die Ereignisverarbeitungsfunktion darstellt.

Beispiel 3

Im folgenden Beispiel werden für das Absatz-Tag <p> zwei Ereignisse registriert: mouseover und mouseout. Wenn der Cursor vorbeigeht, ist die Hintergrundfarbe des Absatztextes blau, und wenn der Cursor weggeht, ist die Hintergrundfarbe rot.

<p id="p1">Mehrere Ereignisse für ein Objekt registrieren</p>
<Skript>
  var p1 = document.getElementById("p1"); //Absatzelement erfassen p1.attachEvent("onmouseover", function () {
    dieser.Stil.Hintergrund = "blau";
  }); //Mouseover-Ereignis registrieren p1.attachEvent("onmouseout", function () {
    dieser.Stil.Hintergrund = "rot";
  }); //Mouseout-Ereignis registrieren</script>

Wenn attachEvent() zum Registrieren eines Ereignisses verwendet wird, ist das aufrufende Objekt der Ereignisverarbeitungsfunktion nicht mehr das aktuelle Ereignisobjekt selbst, sondern das Fensterobjekt. Daher zeigt this in der Ereignisfunktion auf das Fenster und nicht auf das aktuelle Objekt. Wenn Sie das aktuelle Objekt abrufen möchten, sollten Sie das srcElement-Attribut des Ereignisses verwenden.

Der erste Parameter der Methode attachEvent () im IE-Ereignismodell ist der Name des Ereignistyps, dem das Präfix on vorangestellt werden muss. Bei Verwendung der Methode addEventListener () ist das Präfix on nicht erforderlich, z. B. bei click.

Dies ist das Ende dieses Artikels über die JS-Methoden addEventListener() und attachEvent() zum Implementieren von Registrierungsereignissen. Weitere verwandte Inhalte zu JS addEventListener() und attachEvent() finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • EventBus in JavaScript implementiert die Kommunikation zwischen Objekten
  • JS-Ereignisschleifenmechanismus Ereignisschleifen-Makrotask-Mikrotask-Prinzipanalyse
  • Analyse des Unterschieds zwischen den Prinzipien und der Verwendung von Js on und addEventListener
  • Einfache Modellerklärung und Anwendungsanalyse der JavaScript-Ereignisschleife
  • Fallanalyse der Verwendung von addEventListener() und removeEventListener() in js
  • Verständnis und Anwendungsbeispiele für Event Loop in node.js
  • Detaillierte Erklärung des node.JS-Ereignismechanismus und der Verwendung des Ereignismoduls
  • JavaScript MouseEvent-Fallstudie

<<:  JS removeAttribute()-Methode zum Löschen eines Attributs eines Elements

>>:  Einführung und Anwendungsbeispiele von ref und $refs in Vue

Artikel empfehlen

Zusammenfassung einiger Tipps zum MySQL-Indexwissen

Inhaltsverzeichnis 1. Grundkenntnisse der Indizie...

Detaillierte Schritte zum Einrichten eines Nexus-Servers

1. Die Bedeutung des Aufbaus eines Nexus-Dienstes...

Analyse der MySQL-Ansichtsfunktionen und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

jQuery+Ajax zum Erreichen eines einfachen Paging-Effekts

In diesem Artikel wird der spezifische Code von j...

So benennen Sie unter Linux eine Gruppe von Dateien auf einmal um

Unter Linux verwenden wir normalerweise den Befeh...

Eine kurze Diskussion über die Eigenschaften von CSS-Float

In diesem Artikel werden die Eigenschaften von CS...

Detaillierte Erklärung der Lösung für verweigerte Berechtigungen in Linux

Zugriff verweigert: Der Grund hierfür ist: Es lie...

CSS3 verwendet Transform, um eine bewegliche 2D-Uhr zu erstellen

Nachdem wir den transform Kurs abgeschlossen habe...

Erläuterung der objektorientierten Klassenvererbung in JavaScript

1. Objektorientierte Klassenvererbung In den obig...

Native JS-Implementierung des Ladefortschrittsbalkens

Dieser Artikel zeigt einen Spezialeffekt für dyna...

Entwurf und Implementierung einer kaskadierenden Dropdown-Box in Vue

Inhaltsverzeichnis 1. Datenbankdesign 2. Frontend...

React + ts realisiert den sekundären Verknüpfungseffekt

In diesem Artikel wird der spezifische Code von R...