„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum wird die Onclick-Funktion von JavaScript vorzeitig ausgelöst, wenn Klammern verwendet werden?

Warum wird die Onclick-Funktion von JavaScript vorzeitig ausgelöst, wenn Klammern verwendet werden?

Veröffentlicht am 10.11.2024
Durchsuche:263

Why Does JavaScript onclick Function Trigger Prematurely When Parentheses Are Used?

JavaScript-Onclick-Funktion wurde vorzeitig ausgelöst

Beim Erstellen eines Links mit ähnlicher Ästhetik wie ein -Tag, der jedoch beim Klicken eine Funktion ausführen soll können Benutzer auf ein Szenario stoßen, in dem die Funktion beim Laden der Seite fälschlicherweise aufgerufen wird. Dies verhindert, dass das gewünschte Klickereignis ordnungsgemäß funktioniert.

Die häufigste Gefahr ist die unsachgemäße Verwendung von Klammern bei der Zuweisung des onclick-Attributs. Anstelle von sentNode.onclick = secondFunction(), das die Funktion sofort ausführt, lautet die korrekte Syntax sentNode.onclick = secondFunction. Dadurch wird der Funktion eine Referenz zugewiesen, die nur beim Klickereignis ausgeführt wird.

function startFunction() {
  var sentNode = document.createElement('a');
  sentNode.setAttribute('href', "#");
  sentNode.setAttribute('onclick', secondFunction);
  //sentNode.onclick = secondFunction();
  sentNode.innerHTML = "Sent Items";
  //...
}

Durch Weglassen der Klammern wird das onclick-Ereignis korrekt an eine Funktionsreferenz und nicht an das Ergebnis seiner Ausführung gebunden, wodurch das beabsichtigte Verhalten sichergestellt wird.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729552154 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3