Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah fungsi JavaScript saya tidak ditakrifkan dalam JSFiddle?

Mengapakah fungsi JavaScript saya tidak ditakrifkan dalam JSFiddle?

Susan Sarandon
Susan Sarandonasal
2024-11-01 06:41:02224semak imbas

Why are my JavaScript functions not defined in JSFiddle?

Mengapa JavaScript tidak Berjalan pada JSFiddle: Menyelesaikan Ralat Definisi Fungsi

Apabila cuba menjalankan kod JavaScript pada JSFiddle, anda mungkin menghadapi ralat menunjukkan bahawa fungsi tertentu tidak ditakrifkan. Ini berlaku kerana JSFiddle merangkum kod dalam fungsi onload, mengehadkan skop definisi fungsi.

Definisi dan Rujukan Fungsi

Dalam kod yang disediakan, fungsi seperti fillList( ) dan mySelectList() ditakrifkan dalam fungsi window.onload. Ini bermakna fungsi ini hanya boleh diakses dari dalam fungsi ini. Walau bagaimanapun, anda cuba merujuknya sebagai pembolehubah global dalam HTML anda, yang membawa kepada ralat.

Pilihan Penyelesaian

Untuk menyelesaikannya, anda mempunyai tiga pilihan:

a) Mengubah Suai Fungsi sebagai Pembolehubah Global

  • Penyelesaian yang paling mudah dan cepat, tetapi tidak ideal ialah menukar sintaks definisi fungsi kepada:
<code class="javascript">window.fillList = function() {}; // makes fillList a global function</code>

b) JavaScript yang tidak mengganggu

  • Pendekatan yang disyorkan ialah menggunakan JavaScript yang tidak mengganggu, yang memisahkan HTML daripada JavaScript:
<code class="javascript">// attach event listener from within JavaScript
var mySelectList = document.getElementById('mySelectList');
mySelectList.addEventListener('change', function() {
    alert('Selection changed!');
});</code>

c) Mengubah suai Tetapan JSFiddle

  • JSFiddle membolehkan anda menentukan pilihan pembalut. Tukar tetapan enkapsulasi kepada "Tiada bungkus - Kepala atau Badan" untuk mengelakkan pembendungan kod dalam fungsi onload.

Cadangan

Pilihan b) amat disyorkan kerana ia menggalakkan amalan terbaik dan organisasi kod. Dengan mengasingkan HTML daripada JavaScript, anda memperoleh kawalan dan fleksibiliti yang lebih besar ke atas kod anda.

Atas ialah kandungan terperinci Mengapakah fungsi JavaScript saya tidak ditakrifkan dalam JSFiddle?. 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