CodeGym /Kurse /Frontend SELF DE /Arbeiten mit Events

Arbeiten mit Events

Frontend SELF DE
Level 41 , Lektion 4
Verfügbar

5.1 Grundlagen der Arbeit mit Events

Events in JavaScript ermöglichen die Interaktion mit dem Benutzer und reagieren auf seine Aktionen wie Mausklicks, Tastendrücke, Änderungen in Formularen und vieles mehr. Zu verstehen, wie man Event-Handler hinzufügt und entfernt, ist ein wichtiger Teil der Entwicklung interaktiver Web-Anwendungen.

Was sind Events?

Ein Event ist ein Signal vom Browser, das mitteilt, dass etwas passiert ist. Zum Beispiel, der Benutzer hat auf einen Button geklickt oder die Seite wurde geladen. Events ermöglichen es, bestimmte Aktionen als Reaktion auf diese Signale auszuführen.

Event-Typen

Es gibt eine Vielzahl von Event-Typen. Einige der am häufigsten verwendeten sind:

  • Maus: click, dblclick, mouseover, mouseout, mousedown, mouseup, mousemove
  • Tastatur: keydown, keyup, keypress
  • Formular: submit, change, focus, blur
  • Dokument/Fenster: load, resize, scroll, unload

Event-Handler

Event-Handler (oder Event-Listener) sind Funktionen, die als Reaktion auf ein bestimmtes Ereignis ausgeführt werden. Sie „lauschen“ bestimmten Events und werden ausgeführt, wenn diese auftreten.

5.2 Hinzufügen von Event-Handlern

Hinzufügen von Event-Handlern mit addEventListener

Die Methode addEventListener ermöglicht das Hinzufügen von Event-Handlern zu Elementen. Sie bietet mehr Flexibilität und Kontrolle im Vergleich zu traditionellen Methoden wie der Verwendung von HTML-Attributen (onclick, onchange usw.).

Syntax:

    
      element.addEventListener(event, handler, options);
    
  

Wo:

  • element: das Element, zu dem der Event-Handler hinzugefügt wird
  • event: der Event-Typ, auf den reagiert werden soll (z.B. 'click', 'input', 'keydown')
  • handler: die Funktion, die beim Auftreten des Events aufgerufen wird
  • options: zusätzliche Parameter (optional)

Beispiel: Hinzufügen eines Click-Event-Handlers

In diesem Beispiel wird ein Event-Handler zu einem Button hinzugefügt. Wenn der Benutzer auf den Button klickt, erscheint eine Benachrichtigung.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
        <button id="myButton">Click me</button>

        <script>
          const button = document.getElementById('myButton');

          button.addEventListener('click', function() {
            alert('Button geklickt!');
          });
        </script>
        </body>
      </html>
    
  

Beispiel: Hinzufügen mehrerer Event-Handler

Mit addEventListener können mehrere Handler für ein Event hinzugefügt werden.

In diesem Beispiel werden zwei Event-Handler zu einem Button hinzugefügt. Bei einem Klick werden beide Handler nacheinander ausgeführt und geben entsprechende Nachrichten in der Konsole aus.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>

          <script>
            const button = document.getElementById('myButton');

            button.addEventListener('click', function() {
              console.log('Erster Handler');
            });

            button.addEventListener('click', function() {
              console.log('Zweiter Handler');
            });
          </script>
        </body>
      </html>
    
  

5.3 Verwendung des Parameters options

Der Parameter options ermöglicht die Anpassung des Verhaltens des Event-Handlers. Die am häufigsten verwendeten Optionen sind:

  • once: wenn true, wird der Handler nur einmal ausgeführt und danach automatisch entfernt
  • capture: wenn true, wird das Event während der Capturing-Phase anstelle der Bubbling-Phase behandelt
  • passive: wenn true, gibt an, dass der Handler niemals preventDefault() aufrufen wird

Beispiel: Handler, der nur einmal ausgeführt wird

In diesem Beispiel wird der Event-Handler nur einmal ausgeführt und danach automatisch entfernt.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>

          <script>
            const button = document.getElementById('myButton');

            button.addEventListener('click', function() {
              alert('Das wird nur einmal angezeigt');
            }, { once: true });
          </script>
        </body>
      </html>
    
  

5.4 Entfernen von Event-Handlern

Entfernen von Event-Handlern mit removeEventListener

Die Methode removeEventListener ermöglicht das Entfernen von Event-Handlern, die mit addEventListener hinzugefügt wurden. Dafür müssen die gleichen Argumente übergeben werden, die beim Hinzufügen des Handlers verwendet wurden.

Syntax:

    
      element.removeEventListener(event, handler, options)
    
  

Wo:

  • element: das Element, von dem der Event-Handler entfernt wird
  • event: der Event-Typ, dessen Handler entfernt werden soll
  • handler: die Funktion, die als Event-Handler eingesetzt wurde
  • options: zusätzliche Parameter (müssen mit den beim Hinzufügen des Handlers verwendeten Parametern übereinstimmen)

Beispiel: Entfernen des Click-Event-Handlers

In diesem Beispiel wird ein click-Event-Handler zu einem Button hinzugefügt. Ein Klick auf einen anderen Button entfernt den click-Event-Handler.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>
          <button id="removeButton">Remove Click Handler</button>

          <script>
            const button = document.getElementById('myButton');
            const removeButton = document.getElementById('removeButton');

            function clickHandler() {
              alert('Button geklickt!');
            }

            button.addEventListener('click', clickHandler);

            removeButton.addEventListener('click', function() {
              button.removeEventListener('click', clickHandler);
              alert('Click-Handler entfernt');
            });
          </script>
        </body>
      </html>
    
  
1
Опрос
DOM-Elemente,  41 уровень,  4 лекция
недоступен
DOM-Elemente
DOM-Elemente
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION