Dalam Javascript, fungsi onclick boleh digunakan untuk menetapkan tindakan kepada elemen HTML apabila diklik. Walau bagaimanapun, pembangun sering menghadapi isu di mana fungsi itu dilaksanakan serta-merta selepas penciptaan elemen, walaupun sebelum mengklik padanya.
Dalam kod Javascript yang disediakan, pembangun bertujuan untuk mencipta pautan yang mencetuskan fungsi apabila diklik dan bukannya mengubah hala ke halaman baharu. Walau bagaimanapun, fungsi onclick (Fungsi kedua) dipanggil serta-merta kerana kaedah tugasan yang salah.
Ralat terletak pada baris:
<code class="js">sentNode.setAttribute('onclick', secondFunction());</code>
Di sini, secondFunction() digunakan terus , yang bermaksud fungsi berjalan sebaik sahaja ia ditakrifkan. Untuk menyelesaikan isu ini, ia harus ditetapkan seperti berikut:
<code class="js">sentNode.setAttribute('onclick', secondFunction);</code>
Dengan merujuk fungsi tanpa kurungan, kod memberikan fungsi itu sendiri, bukan nilai pulangannya. Ini memastikan bahawa fungsi dilaksanakan hanya apabila peristiwa onclick berlaku.
Kod yang betul sepatutnya kelihatan seperti:
<br>function startFunction() {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var sentNode = document.createElement('a'); sentNode.setAttribute('href', "#"); sentNode.setAttribute('onclick', secondFunction); // Assign 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);
}
Dengan menerima pakai perubahan ini, fungsi onclick akan dipanggil dengan sewajarnya apabila elemen diklik.
Atas ialah kandungan terperinci Cara Mengelakkan Pelaksanaan Pramatang Fungsi Onclick dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!