Rumah >hujung hadapan web >tutorial js >Mengapakah \'Uncaught ReferenceError: function is not definition\' Berlaku dengan Atribut Onclick dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah \'Uncaught ReferenceError: function is not definition\' Berlaku dengan Atribut Onclick dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 00:16:11297semak imbas

Why Does

"Uncaught ReferenceRalat: fungsi tidak ditakrifkan" dengan Onclick Attribute

Masalah:

Apabila mengklik butang dengan onclick atribut, ralat "Uncaught ReferenceError: function is not defined" berlaku.

Punca:

Skrip pengguna dijalankan dalam persekitaran terpencil di mana onclick beroperasi dalam skop halaman sasaran. Akibatnya, onclick tidak boleh mengakses fungsi yang ditakrifkan dalam skrip pengguna.

Penyelesaian:

Elakkan menggunakan onclick dan gunakan addEventListener() sebaliknya. Contohnya:

emoteTab[2].innerHTML += '<span>

Kod Kemas Kini:

for (i = 0; i < EmoteURLLines.length; i++) {
    if (checkIMG (EmoteURLLines[i])) {
        localStorage.setItem ("nameEmotes", JSON.stringify (EmoteNameLines));
        localStorage.setItem ("urlEmotes", JSON.stringify (EmoteURLLines));
        localStorage.setItem ("usageEmotes", JSON.stringify (EmoteUsageLines));
        if (i == 0) {
            console.log (resetSlot ());
        }
        emoteTab[2].innerHTML  += '<span>
var targetSpans = emoteTab[2].querySelectorAll ("span[data-usage]");
for (var J in targetSpans) {
    targetSpans[J].addEventListener ("click", appendEmote, false);
}

Amaran Tambahan:

  • Elakkan menggunakan ID yang sama untuk berbilang elemen (tidak sah).
  • Jadilah berhati-hati bahawa menggunakan innerHTML atau outerHTML boleh menimpa pengendali acara pada nod yang terjejas.

Atas ialah kandungan terperinci Mengapakah \'Uncaught ReferenceError: function is not definition\' Berlaku dengan Atribut Onclick dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn