Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa JavaScript Saya Tidak `removeEventListener` Berfungsi?

Mengapa JavaScript Saya Tidak `removeEventListener` Berfungsi?

DDD
DDDasal
2024-11-02 03:08:03247semak imbas

Why Isn't My JavaScript `removeEventListener` Working?

Mengapa Javascript's removeEventListener tidak Berfungsi?

Apabila cuba mengalih keluar pendengar acara, pengguna mungkin menghadapi kesukaran, yang membawa kepada persoalan sama ada terdapat masalah dengan pelaksanaannya. Untuk menangani kebimbangan ini, mari analisa kod yang disediakan.

Dalam contoh yang diberikan, pendengar acara dilampirkan pada elemen bernama kawasan untuk acara klik. Walau bagaimanapun, apabila cuba mengalih keluar pendengar kemudian dalam fungsi lain, ia gagal dialih keluar.

Punca kegagalan ini terletak pada fakta bahawa dua fungsi tanpa nama yang diserahkan kepada addEventListener dan removeEventListener adalah fungsi yang berbeza. Walaupun kedua-duanya mengendalikan acara klik pada kawasan, mereka bukan objek fungsi yang sama. Akibatnya, mengalih keluar pendengar acara menggunakan rujukan fungsi tanpa nama yang sama daripada addEventListener tidak akan berfungsi.

Untuk menyelesaikan isu ini, adalah perlu untuk menggunakan rujukan fungsi tanpa nama yang sama untuk menambah dan mengalih keluar pendengar acara. Ini memastikan bahawa fungsi removeEventListener boleh menyasarkan dan mengalih keluar pendengar khusus yang telah ditambahkan sebelum ini dengan betul.

Berikut ialah contoh coretan kod yang diperbetulkan:

<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>

Dengan menggunakan fungsi bernama seperti foo untuk pengendali acara, objek fungsi yang sama boleh dirujuk untuk menambah dan mengalih keluar pendengar acara, menjamin pendengar dialih keluar dengan betul apabila dikehendaki.

Atas ialah kandungan terperinci Mengapa JavaScript Saya Tidak `removeEventListener` Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:Contoh Resume Penganalisis DataArtikel seterusnya:Contoh Resume Penganalisis Data