Heim  >  Artikel  >  Web-Frontend  >  Warum wird mein „addEventListener“ beim Laden der Seite ausgelöst und nicht bei einem Klick?

Warum wird mein „addEventListener“ beim Laden der Seite ausgelöst und nicht bei einem Klick?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 17:50:02312Durchsuche

Why does my `addEventListener` trigger on page load instead of a click?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn