Bagaimana untuk Mengelakkan Rujukan Pembolehubah Bertindih dalam Pengendali Acara JavaScript Dicipta dengan Gelung?

Mary-Kate Olsen
Lepaskan: 2024-11-27 11:07:11
asal
910 orang telah melayarinya

How to Prevent Overlapping Variable References in JavaScript Event Handlers Created with Loops?

Cara Mengelakkan Rujukan Pembolehubah Bertindih Semasa Menjana Pengendali Acara dengan Gelung dalam JavaScript

Dalam JavaScript, apabila mencipta pengendali acara dengan gelung, adalah penting untuk menangani isu rujukan boleh ubah. Soalan asal menunjukkan bagaimana gelung yang memperuntukkan peristiwa onclick kepada berbilang elemen boleh mengakibatkan tingkah laku yang tidak dijangka disebabkan oleh akses pembolehubah yang dikongsi.

Isu ini timbul apabila semua pengendali acara merujuk pembolehubah yang sama, yang dikemas kini dengan setiap lelaran gelung. Akibatnya, hanya pengendali peristiwa terakhir yang mengekalkan nilai akhir pembolehubah.

Untuk menyelesaikan masalah ini, penyelesaian melibatkan penentuan fungsi berasingan untuk setiap pengendali peristiwa, dengan pembolehubah sebagai parameter. Ini memastikan bahawa setiap pengendali mempunyai salinan pembolehubahnya sendiri, mengelakkan masalah rujukan bertindih.

Berikut ialah kod yang diperbetulkan:

// Define a function that takes the variable as a parameter
function handleElement(i) {
    document.getElementById("b" + i).onclick = function () {
        alert(i);  // Each handler has its own i
    };
}

// Iterate through the elements and call the function
for (i = 1; i < 11; i++) {
    handleElement(i);
}
Salin selepas log masuk

Dengan menggunakan pendekatan ini, setiap pengendali acara mempunyai kodnya sendiri rujukan pembolehubah khusus, memastikan ia berkelakuan seperti yang diharapkan dan memaklumkan nilai yang betul berdasarkan elemen yang sepadan dengannya.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Rujukan Pembolehubah Bertindih dalam Pengendali Acara JavaScript Dicipta dengan Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan