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中文網其他相關文章!