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