Heim > Web-Frontend > js-Tutorial > Wie kann der sofortige Aufruf der Javascript-OnClickListener-Funktion während der Anker-Tag-Erstellung verhindert werden?

Wie kann der sofortige Aufruf der Javascript-OnClickListener-Funktion während der Anker-Tag-Erstellung verhindert werden?

DDD
Freigeben: 2024-10-22 07:15:03
Original
994 Leute haben es durchsucht

How to Prevent Immediate Invocation of Javascript OnClickListener Function during Anchor Tag Creation?

Javascript OnClickListener-Funktion wird sofort ausgelöst

Beim Versuch, ein Anker-Tag zu erstellen, das das Aussehen eines herkömmlichen Links nachahmt, aber eher eine Funktion auslöst als Beim Weiterleiten auf eine neue Seite wird die Onclick-Funktion unabhängig von der Benutzereingabe beim Erstellen des Links aufgerufen. Dies verhindert ein späteres manuelles Anklicken des Links.

Das Problem liegt in der unsachgemäßen Implementierung der Onclick-Funktion. Anstatt die eigentliche Funktion selbst zuzuweisen (secondFunction()), besteht die richtige Syntax darin, auf die Funktion zu verweisen (secondFunction). Dadurch wird sichergestellt, dass die Funktion nur aufgerufen wird, wenn das Onclick-Ereignis auftritt, nicht bei seiner Deklaration.

Um dies zu beheben, ersetzen Sie:

<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>
Nach dem Login kopieren

durch:

<code class="javascript">sentNode.onclick = secondFunction();</code>
Nach dem Login kopieren

Dadurch wird ein Verweis auf die Funktion „secondFunction“ übergeben, sodass diese aufgerufen werden kann, wenn darauf geklickt wird. Der korrigierte Code sollte wie folgt aussehen:

<code class="javascript">function startFunction() {
    var sentNode = document.createElement('a');
        sentNode.setAttribute('href', "#");
        sentNode.onclick = secondFunction;  // Assign the function reference
        sentNode.innerHTML = "Sent Items";

    //Add new element to parent
    var parentNode = document.getElementById('parent');
    var childNode = document.getElementById('sendNode');
    parentNode.insertBefore(sentNode, childNode);
}</code>
Nach dem Login kopieren

Durch Befolgen dieser Schritte wird die Onclick-Funktion korrekt zugewiesen, sodass der Link wie vorgesehen funktioniert, ohne dass bei seiner Erstellung ein sofortiger Aufruf erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann der sofortige Aufruf der Javascript-OnClickListener-Funktion während der Anker-Tag-Erstellung verhindert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage