首頁 >web前端 >js教程 >為什麼我的removeEventListener 在 JavaScript 中不起作用?

為什麼我的removeEventListener 在 JavaScript 中不起作用?

Susan Sarandon
Susan Sarandon原創
2024-11-03 08:08:30460瀏覽

Why Is My removeEventListener Not Working in JavaScript?

Javascript removeEventListener 不工作

在事件處理領域,removeEventListener 方法在從元素分離事件監聽器方面起著至關重要的作用。然而,遇到removeEventListener無法如預期運行的問題可能會令人沮喪。

考慮以下程式碼片段:

<code class="javascript">area.addEventListener('click',function(event) {
    app.addSpot(event.clientX,event.clientY);
    app.addFlag = 1;
},true);</code>

此程式碼熟練地附加一個匿名函數作為「click」的事件偵聽器' 'area' 元素上的事件。但是,當嘗試使用以下程式碼刪除此偵聽器時:

<code class="javascript">area.removeEventListener('click',function(event) {
    app.addSpot(event.clientX,event.clientY);
    app.addFlag = 1;
},true);</code>

您可能會遇到障礙。問題在於addEventListener 和removeEventListener 中使用的匿名函數的不同性質。作為removeEventListener 參數提供的函數與先前註冊的函數不同。若要解決此問題,請將偵聽器函數指派給命名變數:

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

以上是為什麼我的removeEventListener 在 JavaScript 中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn