Programme sollen auf Ereignisse reagieren können. Üblicherweise werden auf der Benutzeroberfläche des Programmes Teile bestimmt, wo Einfluss auf ein Programm genommen werden kann.
Um das zu ermöglichen werden im Programm Teile bestimmt, die auf solche Ereignisse hinprogrammiert werden. Wird JavaScript in Html Seiten verwendet dann sind dafür die:
Um einen Event in JavaScript ordnungsgemäß abwickeln zu können sind 3 Punkte notwendig:
Welcher Teil im HTML-Dokument ist für das Ereigniss zuständig das einen Event auslöst?
So wird derjenige, der die Verantwortung für das Empfangen des Ereignisses übertragen bekommt aus dem Html Code der Webseite gesucht und bestimmt:
Das verhält sich genauso nach der großen Frage: Wer meldet sich freiwillig für ...
document.querySelector (Parameter);
Zwischen den Klammern kann folgender Parameter stehen:
Achtung diese Anfrage liefert immer nur das erste gefundene Element. Sie kann erst NACHDEM sich die Webseite bis zum betreffenden Element geladen hat aktiv werden!
Jener Teil des Html Dokuments, das auf das Ereignis warten soll, wird Listener genannt. Das gefundene Objekt wird durch den Aufruf der Methode addEventListener(), zum Verantwortlichen ernannt.
.addEventListener()
Um im Beispiel zu verdeutlichen was dabei passiert bestimme ich als Verantwortlichen den Portier. Das bedeutet es wird eine Variable mit dem Namen portier bestimmt, das die Rolle des Portiers - fachgesprochen des Listeners - erhält:
portier.addEventListener()
Diese Methode hat 2 Parameter:
Im Leben können Signale durch Handzeichen, Ampeln, Rauchzeichen mit Feuer usw. gegeben werden. Es ist wichtig zu wissen, auf welches Signal denn geachtet werden soll? In Programmiersprachen zählen zu den Signalen:
Diese Signale sind vorgegeben und werden als erster Parameter übergeben. change, click, mouseover, mouseout, keydown, load Eine schöne Zusammenstellung möglicher Events und Methoden siehe: w3scools.com Alle Events immer ohne den vorangehenden on also statt onclick -> click
portier.addEventListener("click",)
In unserem Beispiel wird die Art des Signals jedoch in der Variablen art_des_signals gespeichert.
var art_des_signals = "click";
Der zweite Parameter enthält nur die Referenz zu der Anweisung die auszuführen ist.
In unserem Beispiel lautet die Anweisung das Fenster zu öffnen um den Raum zu lüften.
var anweisung = lueften; function lueften() { alert("ich habe das Fenster soeben geöffnet"); }
Somit lautet der vollständige Satz für das betreffende Objekt in unserem Beispiel:
portier.addEventListener(art_des_signals, anweisung)
Somit weiß der Portier, auf was er reagieren muss und was zu tun ist, wenn dieses Ereignis bzw fachchinesisch Event eintrifft.
Üblicherweise wird die var anweisung immer e genannt.
Das Script darf erst dann aktiv werden, wenn die Seite geladen ist! Deswegen steht das Script am Schluß im body-Tag.
<div> 1. div-Tag zum Testen </div> <div> 2. div-Tag zum Testen </div> <script> var anweisung = lueften; var art_des_signals = "click"; var portier = document.querySelector("div"); function lueften() { alert("ich habe das Fenster soeben geöffnet"); } portier.addEventListener(art_des_signals, anweisung); </script>
Der Event: input aktualisiert während der Änderung von Eingaben - siehe:Developer.mozilla.org
Der Inhalt eines Html Blocks wird mit der Eigenschaft
document.querySelector(Parameter).innerHTML;
gelesen oder geändert. Vorsicht, Suchmaschinen sind keine Hellseher