Mengapa JavaScript Saya Tidak `removeEventListener` Berfungsi?

DDD
Lepaskan: 2024-11-02 03:08:03
asal
246 orang telah melayarinya

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>
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!