CodeGym/Kurse/Frontend SELF DE/Benutzerdefinierte Ereignisse

Benutzerdefinierte Ereignisse

Verfügbar

8.1 Erstellen von benutzerdefinierten Ereignissen

Benutzerdefinierte Ereignisse (oder Custom Events) in JavaScript ermöglichen Entwicklern das Erstellen und Auslösen eigener Ereignisse, was nützlich sein kann, um Informationen zu übermitteln und die Interaktion zwischen verschiedenen Teilen einer Anwendung zu verbessern. Das Erstellen und Verwenden von benutzerdefinierten Ereignissen kann die Struktur und Flexibilität deines Codes verbessern, indem es eine Möglichkeit bietet, den Zustand der Anwendung zu informieren und zu steuern.

Zur Erstellung benutzerdefinierter Ereignisse wird der Konstruktor CustomEvent verwendet. Mit diesem Konstruktor können neue Ereignisse mit konfigurierbaren Parametern und zusätzlichen Daten erstellt werden.

Syntax:

const event = new CustomEvent(type, {detail: additionalData});

Wo:

  • type: ein String, der den Namen des Ereignisses repräsentiert
  • detail: ein Objekt, das zusätzliche Daten enthält, die mit dem Ereignis übermittelt werden

Beispiel zur Erstellung eines benutzerdefinierten Ereignisses:

JavaScript
const myEvent = new CustomEvent('myCustomEvent', { detail: { message: 'Hello, world!' } });

8.2 Auslösen benutzerdefinierter Ereignisse

Das Auslösen eines Ereignisses erfolgt mit der Methode dispatchEvent. Diese Methode wird auf dem Element aufgerufen, auf dem das Ereignis auftreten soll.

Erklärung:

  • Ein Event-Handler für das Ereignis myCustomEvent wird dem Button myButton hinzugefügt, welcher die Nachricht aus den Ereignisdaten in die Konsole ausgibt
  • Ein benutzerdefiniertes Ereignis myCustomEvent wird mit einer Nachricht im detail erstellt
  • Das Ereignis wird bei dem Button myButton ausgelöst, was den Handler aktiviert und die Nachricht in die Konsole ausgibt

Beispiel:

HTML
<!DOCTYPE html>
<html>
  <head>
    <title>Custom Event Example</title>
  </head>
  <body>
    <button id="myButton">Button</button>
    <script>
      const button = document.getElementById('myButton');

      // Hinzufügen eines Handlers für das benutzerdefinierte Ereignis
      button.addEventListener('myCustomEvent', function(event) {
        console.log('Custom event received:', event.detail.message);
      });

      // Erstellen und Auslösen des benutzerdefinierten Ereignisses
      const myEvent = new CustomEvent('myCustomEvent', { detail: { message: 'Hello, world!' } });
      button.dispatchEvent(myEvent);
    </script>
  </body>
</html>

8.3 Anwendung benutzerdefinierter Ereignisse

Benutzerdefinierte Ereignisse sind nützlich für die Erstellung modulareren und wartbareren Codes, besonders bei der Arbeit mit Komponenten und komplexen Anwendungen. Sie ermöglichen es einer Komponente, andere Komponenten über Änderungen oder Aktionen zu informieren.

Erklärung:

  • Modul A löst das benutzerdefinierte Ereignis notifyB auf dem Element moduleB aus und übermittelt Daten
  • Modul B hört auf das Ereignis notifyB und verarbeitet es, indem es eine Nachricht in die Konsole ausgibt

Beispiel zur Verwendung benutzerdefinierter Ereignisse in einer modularen Anwendung:

HTML
<!DOCTYPE html>
<html>
  <head>
    <title>Module Communication Example</title>
  </head>
  <body>
    <div id="moduleA">Module A</div>
    <div id="moduleB">Module B</div>
    <script>
      const moduleA = document.getElementById('moduleA');
      const moduleB = document.getElementById('moduleB');

      // Modul A löst das benutzerdefinierte Ereignis aus
      function notifyModuleB() {
        const event = new CustomEvent('notifyB', { detail: { message: 'Data from Module A' } });
        moduleB.dispatchEvent(event);
      }

      // Modul B hört auf das benutzerdefinierte Ereignis
      moduleB.addEventListener('notifyB', function(event) {
        console.log('Module B received:', event.detail.message);
      });

      // Simulation einer Aktion in Modul A
      notifyModuleB();
    </script>
  </body>
</html>

8.4 Parameter von benutzerdefinierten Ereignissen

Benutzerdefinierte Ereignisse können mit den folgenden Parametern zusätzlich konfiguriert werden:

  • bubbles: ein boolescher Wert, der angibt, ob das Ereignis bubblen soll. Standardmäßig false
  • cancelable: ein boolescher Wert, der angibt, ob das Ereignis abgebrochen werden kann. Standardmäßig false
  • composed: ein boolescher Wert, der angibt, ob das Ereignis über Schatten-DOM-Grenzen hinaus verbreiten soll. Standardmäßig false

Beispiel:

HTML
<!DOCTYPE html>
<html>
  <head>
    <title>Custom Event Parameters Example</title>
  </head>
  <body>
    <div id="container">
      <button id="myButton">Button</button>
    </div>
    <script>
      const container = document.getElementById('container');
      const button = document.getElementById('myButton');

      // Hinzufügen von Handlers für den Container und den Button
      container.addEventListener('customEvent', function(event) {
        console.log('Container received:', event.detail.message);
      });

      button.addEventListener('customEvent', function(event) {
        console.log('Button received:', event.detail.message);
      });

      // Erstellen und Auslösen des benutzerdefinierten Ereignisses mit Parametern
      const myEvent = new CustomEvent('customEvent', {
        detail: { message: 'Hello from button' },
        bubbles: true,
        cancelable: true,
        composed: false
      });

      button.dispatchEvent(myEvent);
    </script>
  </body>
</html>
1
Aufgabe
Frontend SELF DE,  Level 42Lektion 2
Gesperrt
Speichern Benachrichtigung
Speichern Benachrichtigung
1
Aufgabe
Frontend SELF DE,  Level 42Lektion 2
Gesperrt
Aktualisierung des Textes
Aktualisierung des Textes
Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare