Vorlesung 6
JavaScript jQuery & Events

Event-Behandlung in JavaScript

In JavaScript ermöglicht die Event-Behandlung die Reaktion auf Benutzeraktionen wie Klicks, Tastatureingaben, Mausbewegungen oder das Laden von Webseiten. Jedes dieser Ereignisse kann mit einem Event-Listener abgefangen und verarbeitet werden.

Grundlagen

  • Event-ListenerEine Funktion, die auf ein spezifisches Event (Ereignis) wartet und darauf reagiert.
  • Event-Objekt:Enthält Details zum ausgelösten Ereignis, wie den Event-Typ und das Ziel des Events.

Event-Listener hinzufügen

Es gibt mehrere Wege, um Event-Listener in JavaScript hinzuzufügen:

HTML-Attribut


<button onclick="alert('Button geklickt!')">Klick mich</button>

DOM-Element-Property


const button = document.getElementById('meinButton');
button.onclick = function() {
  alert('Button geklickt!');
};
                    

addEventListener-Methode


const button = document.getElementById('meinButton');
button.addEventListener('click', function() {
  alert('Button geklickt!');
});
                    

Beispiele:

Klick-Event


document.getElementById('meinButton').addEventListener('click', function() {
    console.log('Button wurde geklickt!');
  });
  
  • Elementauswahl: document.getElementById('meinButton') wählt das HTML-Element mit der ID meinButton aus
  • Event-Listener hinzufügen: .addEventListener('click', function() {...}) fügt einen Event-Listener hinzu, der auf Klick-Events reagiert.
  • Anonyme Funktion: Die Funktion, die als zweiter Parameter übergeben wird, wird ausgeführt, sobald das Klick-Event auftritt.
  • Aktion: In der Funktion wird console.log('Button wurde geklickt!') aufgerufen. Dies zeigt eine Nachricht in der Konsole des Browsers an, sobald der Button geklickt wird.

Mausbewegungs-Event


document.addEventListener('mousemove', function(e) {
    console.log("Mausposition: X="$"{e.clientX}, Y="$"{e.clientY}");
  });
  
  • Globales Event: Hier wird der Event-Listener an das gesamte Dokument (document) gebunden.
  • Event-Objekt:Das e in der Funktion (function(e) {...}) ist das Event-Objekt, das Details zum ausgelösten Event enthält.
  • Mausposition:e.clientX und e.clientY geben die X- und Y-Koordinaten der Mausposition relativ zum sichtbaren Bereich des Browsers an.
  • Aktion:Bei jeder Bewegung der Maus innerhalb des Dokuments wird die aktuelle Position in der Konsole ausgegeben.

Formular-Submit-Event


document.getElementById('meinFormular').addEventListener('submit', function(e) {
    e.preventDefault(); // Verhindert das Neuladen der Seite
    console.log('Formular gesendet!');
  });
  
  • Formularauswahl: Ein Event-Listener wird an ein Formularelement mit der ID meinFormular gebunden.
  • Verhindern des Standardverhaltens: e.preventDefault() verhindert das standardmäßige Verhalten des Browsers beim Absenden eines Formulars, nämlich das Neuladen der Seite.
  • AktionWenn das Formular abgeschickt wird, erscheint statt des Neuladens der Seite die Nachricht „Formular gesendet!“ in der Konsole.

Tastatureingabe-Event


document.addEventListener('keydown', function(e) {
    console.log("Gedrückte Taste: "$"{e.key}");
  });
  
  • Globales Event: Dieser Event-Listener wird für das gesamte Dokument registriert und reagiert auf Tastendrücke.
  • Event-Objekt: Das e in function(e) stellt das Event-Objekt dar, das Informationen über das Tastendruck-Event enthält.
  • Gedrückte Taste: e.key gibt an, welche Taste gedrückt wurde.
  • Aktion: Bei jedem Tastendruck wird die gedrückte Taste in der Browser-Konsole angezeigt.

Event-Behandlung im Window-Objekt und Interaktive Navigation

Das Window-Objekt in JavaScript ist ein zentraler Bestandteil für die Interaktion mit dem Browserfenster und bietet vielfältige Möglichkeiten zur Handhabung von Events und interaktiver Navigation.

Grundlagen

window.eventMethod(function): Ein gängiges Muster, um Event-Listener am Window-Objekt zu registrieren. Hierbei ist `eventMethod` die Methode für ein spezifisches Event, und `function` ist der Event-Handler.

Event-Listener hinzufügen

Die Handhabung von Events auf dem Window-Objekt umfasst typischerweise folgende Schritte:

  • Globales Objekt: Das Window-Objekt ist global verfügbar und erfordert keine spezielle Auswahl.
  • Event-Listener hinzufügen: Verwende window.eventMethod(function), um auf globale Events wie das Laden der Seite, Größenänderungen des Fensters und Tastaturereignisse zu reagieren.

Beispiele:

Seitenlade-Event

window.onload = function() {
                    document.title = 'Seite geladen';
                };
                
  • window.onload: Wird ausgelöst, wenn die gesamte Seite geladen ist. Dieses Event eignet sich, um Initialisierungen durchzuführen.
  • Aktion: Ändert den Titel des Dokuments, nachdem die Seite vollständig geladen wurde.

Fenstergrößenänderungs-Event

window.onresize = function() {
                    document.body.style.backgroundColor = 'lightblue';
                };
                
  • window.onresize: Wird ausgelöst, wenn die Größe des Browserfensters geändert wird. Dies kann genutzt werden, um das Layout dynamisch anzupassen.
  • Aktion: Ändert die Hintergrundfarbe des Body-Elements, wenn die Größe des Fensters geändert wird.

Neues Browserfenster öffnen

window.onclick = function() {
                    window.open('https://www.example.com', 'newWindow', 'width=800,height=600');
                };
                
  • window.onclick: Reagiert auf Mausklicks im Browserfenster.
  • Aktion: Öffnet ein neues Browserfenster mit einer bestimmten URL und definierten Abmessungen, wenn irgendwo im Fenster geklickt wird.

Tastatureingabe-Event

window.onkeydown = function(e) {
                    if (e.key === 'Enter') {
                    alert('Enter-Taste gedrückt');
                    }
                };
                
  • window.onkeydown: Wird ausgelöst, wenn eine Taste gedrückt wird.
  • e.key: Überprüft, welche Taste gedrückt wurde.
  • Aktion: Zeigt ein Alert-Fenster an, wenn die Enter-Taste gedrückt wird.