Javascript removeEventListener Tidak Berfungsi
Dalam bidang pengendalian acara, kaedah removeEventListener memainkan peranan penting dalam memisahkan pendengar acara daripada elemen. Walau bagaimanapun, menghadapi masalah dengan removeEventListener tidak berfungsi seperti yang dijangkakan boleh mengecewakan.
Pertimbangkan coretan kod berikut:
<code class="javascript">area.addEventListener('click',function(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; },true);</code>
Kod ini dengan cekap melampirkan fungsi tanpa nama sebagai pendengar acara untuk 'klik ' acara pada elemen 'kawasan'. Walau bagaimanapun, apabila cuba mengalih keluar pendengar ini dengan kod berikut:
<code class="javascript">area.removeEventListener('click',function(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; },true);</code>
Anda mungkin menghadapi sekatan jalan. Masalahnya terletak pada sifat yang berbeza bagi fungsi tanpa nama yang digunakan dalam addEventListener dan removeEventListener. Fungsi yang disediakan sebagai hujah untuk removeEventListener tidak sama dengan fungsi yang didaftarkan sebelum ini. Untuk menyelesaikan isu ini, tetapkan fungsi pendengar kepada pembolehubah bernama:
<code class="javascript">function foo(event) { app.addSpot(event.clientX,event.clientY); app.addFlag = 1; } area.addEventListener('click',foo,true); area.removeEventListener('click',foo,true);</code>
Atas ialah kandungan terperinci Mengapa RemoveEventListener Saya Tidak Berfungsi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!