Penangan mana yang dijalankan?
Ada sebuah tombol pada variable. Tidak ada pengedali di tombol tersebut.
Manakah penangan yang dijalankan pada saat klik pada kode berikut ini? Manakah alert
yang akan ditunjukan?
button.addEventListener("click", () => alert("1"));
button.removeEventListener("click", () => alert("1"));
button.onclick = () => alert(2);
Jawabannya: 1
dan 2
.
penangan pertama dijalankan, karena tidak di hapuskan oleh removeEventListener
. Untuk menghapuskan penangan kita harus meneruskan secara tepat fungsi yang telah di atur. Dan pada kode sebuah fungsi baru di teruskan, terlihat sama, tapi berbeda fungsi.
Untuk menghapuskan objek fungsi, kita harus menyimpan refensi ke fungsi tersebut, seperti ini:
function handler() {
alert(1);
}
button.addEventListener("click", handler);
button.removeEventListener("click", handler);
penangan button.onclick
bekerja secara sendiri dan sebagai tambahan untuk addEvenetListener
.