Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyahdaftarkan Pendengar Acara Tanpa Nama dalam JavaScript?

Bagaimana untuk Menyahdaftarkan Pendengar Acara Tanpa Nama dalam JavaScript?

DDD
DDDasal
2024-10-18 16:45:30827semak imbas

How to Unregister Anonymous Event Listeners in JavaScript?

Nyahdaftarkan Pendengar Acara Tanpa Nama

Apabila melampirkan pendengar acara dalam JavaScript menggunakan kaedah addEventListener dengan fungsi tanpa nama, mungkin terdapat keperluan untuk mengalih keluar pendengar itu nanti. Walau bagaimanapun, ia tidak serta-merta jelas bagaimana untuk melakukan ini tanpa perlu menggantikan elemen itu sendiri.

Pendekatan:

Malangnya, tiada cara mudah untuk mengalih keluar acara tanpa nama pendengar apabila ia dilampirkan. Ini kerana fungsi tanpa nama tidak mempunyai rujukan yang boleh digunakan untuk dialih keluar.

Penyelesaian:

Penyelesaian praktikal ialah menyimpan rujukan kepada pengendali acara di masa penciptaan. Ini boleh dicapai dengan memberikan fungsi tanpa nama kepada pembolehubah atau harta objek yang berkaitan. Contohnya:

<code class="javascript">const myElement = document.querySelector('.my-element');

// Store a reference to the event handler
const myEventHandler = function () { /* do work here */ };

// Attach the event listener
myElement.addEventListener('click', myEventHandler, false);</code>

Alih Keluar:

Setelah pengendali acara tidak diperlukan lagi, anda boleh mengalih keluarnya dengan menggunakan kaedah removeEventListener dan menghantar rujukan yang disimpan:

<code class="javascript">myElement.removeEventListener('click', myEventHandler);</code>

Dengan mengikuti pendekatan ini, anda boleh menyahdaftarkan pendengar acara tanpa nama dengan berkesan tanpa perlu menggantikan elemen atau menggunakan penyelesaian yang kurang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menyahdaftarkan Pendengar Acara Tanpa Nama dalam JavaScript?. 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