Heim >Web-Frontend >js-Tutorial >Warum wird mein „addEventListener' beim Laden der Seite ausgelöst und nicht bei einem Klick?
JavaScript-Ereignis „addEventListener“ wird beim Laden der Seite ausgelöst [Duplikat]
Frage:
Warum führt das folgende Skript dazu, dass das Ereignis beim Laden der Seite ausgelöst wird und nicht, wenn auf das Element geklickt wird?
document.write("<div id=\"myDiv\">I am a div</div>"); el = document.getElementById("myDiv"); el.addEventListener("click", alert("clicktrack"), false);
Antwort:
Das Problem liegt in der Syntax der Event-Listener-Registrierung. Die Zeile:
el.addEventListener("click", alert("clicktrack"), false);
führt sofort die Alarmfunktion aus und übergibt ihren undefinierten Rückgabewert als Ereignishandler. Um den Alarmcode korrekt als Funktion zu übergeben, sollte er in eine Funktion eingeschlossen werden:
el.addEventListener("click", function() { alert("clicktrack"); }, false);
Auf diese Weise wird der Alarm nur aufgerufen, wenn auf das Element geklickt wird, nicht beim Laden der Seite.
Das obige ist der detaillierte Inhalt vonWarum wird mein „addEventListener' beim Laden der Seite ausgelöst und nicht bei einem Klick?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!