Fungsi Javascript OnClickListener Dicetuskan Serta-merta
Apabila cuba membuat teg sauh yang meniru rupa pautan tradisional tetapi mencetuskan fungsi dan bukannya mengubah hala ke halaman baharu, fungsi onclick digunakan semasa membuat pautan, tanpa mengira input pengguna. Ini menghalang sebarang klikan manual berikutnya pada pautan.
Isunya terletak pada pelaksanaan fungsi onclick yang tidak betul. Daripada memberikan fungsi sebenar itu sendiri (secondFunction()), sintaks yang betul adalah untuk merujuk fungsi (secondFunction). Ini memastikan bahawa fungsi hanya dipanggil apabila peristiwa onclick berlaku, bukan semasa pengisytiharannya.
Untuk membetulkannya, gantikan:
<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>
dengan:
<code class="javascript">sentNode.onclick = secondFunction();</code>
Ini akan memberikan rujukan kepada fungsi secondFunction, membolehkan ia dipanggil apabila diklik. Kod yang diperbetulkan sepatutnya dipaparkan seperti berikut:
<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>
Dengan mengikut langkah-langkah ini, fungsi onclick akan ditetapkan dengan betul, membenarkan pautan berfungsi seperti yang dimaksudkan tanpa seruan serta-merta apabila ia dibuat.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Invokasi Segera Fungsi Javascript OnClickListener semasa Penciptaan Tag Anchor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!