Mengapa Pengendali Acara dalam Gelung JavaScript Merujuk kepada Pembolehubah Yang Sama?
DDD
Lepaskan: 2024-11-05 20:36:02
asal
701 orang telah melayarinya
Bekerja dengan Pengendali Acara dalam Gelung JavaScript: Menggunakan Penutupan untuk Pengendalian Acara yang Berbeza
Dalam JavaScript, apabila bekerja dengan kod HTML, pengendali acara bermain peranan penting dalam membolehkan interaksi pengguna dengan halaman web. Walau bagaimanapun, cabaran biasa timbul apabila pengendali acara ini ditakrifkan dalam gelung, yang membawa kepada gelagat yang tidak dijangka.
Untuk menggambarkan isu ini, pertimbangkan coretan kod berikut:
<code class="javascript">var blah = xmlres.getElementsByTagName('blah');
for(var i = 0; i < blah.length; i++) {
var td = document.createElement('td');
var select = document.createElement('select');
select.setAttribute("...", "...");
select.onchange = function() {
onStatusChanged(select, callid, anotherid);
};
td.appendChild(select);
}
Salin selepas log masuk
Apabila berlaku perubahan peristiwa dicetuskan untuk elemen, bukti empirikal menunjukkan bahawa nilai yang sama dihantar kepada kaedah onStatusChanged(), tanpa mengira
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