Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengelakkan Isu Penutupan Apabila Menggunakan Gelung untuk Menetapkan Pengendali Acara Unik dalam JavaScript?
Pengendali acara Javascript boleh diperuntukkan secara berkesan kepada berbilang elemen menggunakan gelung. Walau bagaimanapun, cabaran timbul apabila cuba untuk menetapkan peristiwa klik unik kepada satu siri elemen yang dijana secara dinamik, kerana gelung kelihatan hanya memperuntukkan acara kepada elemen terakhir.
Punca masalah terletak pada penutupan yang dibuat oleh gelung for. Semua pengendali berkongsi pembolehubah i yang sama, yang ditambah dengan setiap lelaran. Apabila semua pengendali dilaksanakan, pembolehubah i, pada masa pelaksanaan, memegang nilai elemen terakhir dalam gelung, menyebabkan semua pengendali hanya memaparkan nilai terakhir.
Untuk mengatasi isu ini, hantar lelaran gelung i sebagai parameter kepada fungsi berasingan yang mencipta pengendali acara untuk setiap elemen. Dengan berbuat demikian, setiap pengendali mendapat salinan iteratornya sendiri, menghalang isu penutupan. Berikut ialah contoh:
function handleElement(i) { document.getElementById("b" + i).onclick = function () { alert(i); }; } // Create event handlers for each element for (i = 1; i < 11; i++) { handleElement(i); }
Dalam penyelesaian ini, fungsi handleElement merangkum penciptaan pengendali acara, memastikan setiap pengendali mempunyai skop tertutup sendiri dengan nilai unik i.
Teknik di atas membolehkan anda menetapkan pengendali acara unik kepada berbilang elemen yang dijana melalui gelung. Dengan memahami konsep penutupan dan memanfaatkan ciri lulus parameter dalam Javascript, anda boleh mengendalikan acara dengan berkesan pada komponen yang dijana secara dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Isu Penutupan Apabila Menggunakan Gelung untuk Menetapkan Pengendali Acara Unik dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!