Dalam percubaan untuk mencipta kalkulator asas, seseorang menghadapi isu yang membingungkan: "jelas butang ", yang diberikan dengan atribut onclick="clear()", gagal melaksanakan fungsi yang dimaksudkan untuk mengosongkan teks medan.
Enigma terletak dalam atribut peristiwa intrinsik JavaScript, seperti onclick. Atribut ini menggunakan pernyataan dengan, amalan yang tidak digalakkan kerana potensinya untuk kekeliruan dan kebimbangan keserasian. Akibatnya, atribut onclick="clear()" secara tidak sengaja memanggil document.clear() dan bukannya fungsi global yang dimaksudkan clear().
Untuk menyelesaikan isu ini, seseorang boleh menamakan semula fungsi clear atau memanggil tetingkap secara eksplisit. jelas(). Walau bagaimanapun, penyelesaian terbaik ialah menggunakan addEventListener untuk mengikat peristiwa, yang mengelakkan penggunaan atribut peristiwa intrinsik.
Sampel kod berikut menunjukkan pelaksanaan yang betul menggunakan addEventListener:
<script> const clearButton = document.querySelector('input[value="C"]'); clearButton.addEventListener('click', clear); function clear() { document.getElementById("field").value = ""; } </script>
Atas ialah kandungan terperinci Mengapa `onclick='clear()'` Tidak Berfungsi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!