Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh mengalih keluar Pendengar Acara daripada Objek DOM dalam JavaScript?

Bagaimanakah saya boleh mengalih keluar Pendengar Acara daripada Objek DOM dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-25 05:46:02364semak imbas

How Can I Remove Event Listeners from DOM Objects in JavaScript?

Mengalih keluar Pendengar Acara daripada Objek DOM

Mengalih Keluar Semua Pengendali Acara

Untuk mengalih keluar semua pengendali acara daripada objek, anda boleh mengklon elemen dan menggantikan ia dengan klon:

<code class="javascript">var clone = element.cloneNode(true);</code>

Kaedah ini mengekalkan atribut dan anak, tetapi tidak mengubah sifat DOM.

Mengalih keluar Pengendali Acara dengan Fungsi Tanpa Nama

Anda boleh mengalih keluar acara pengendali dengan fungsi tanpa nama dengan menyimpan rujukan kepada fungsi yang dikembalikan dan mencipta fungsi berasingan untuk mengalih keluar semua acara:

<code class="javascript">var _eventHandlers = {};

const addListener = (node, event, handler, capture = false) => {
  if (!(event in _eventHandlers)) {
    _eventHandlers[event] = []
  }
  _eventHandlers[event].push({ node: node, handler: handler, capture: capture })
  node.addEventListener(event, handler, capture)
}

const removeAllListeners = (targetNode, event) => {
  _eventHandlers[event]
    .filter(({ node }) => node === targetNode)
    .forEach(({ node, handler, capture }) => node.removeEventListener(event, handler, capture))

  _eventHandlers[event] = _eventHandlers[event].filter(
    ({ node }) => node !== targetNode,
  )
}</code>

Ini membolehkan anda menambah dan mengalih keluar pendengar acara menggunakan:

<code class="javascript">addListener(div, 'click', eventReturner(), false)
removeAllListeners(div, 'click')</code>

Pengendalian Acara Langsung

Jika anda menggunakan fungsi tanpa nama untuk mengendalikan acara, anda boleh menambah dan mengalih keluarnya terus:

<code class="javascript">function handler() {
  dosomething();
}

div.addEventListener('click',handler,false);</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengalih keluar Pendengar Acara daripada Objek DOM 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
Artikel sebelumnya:EDD dengan pemancar peristiwaArtikel seterusnya:EDD dengan pemancar peristiwa