刪除事件處理程序中的事件偵聽器
您正在尋求一種解決方案,以從自己的定義中刪除事件偵聽器。然而,由於 JavaScript 的事件處理機制,這並不是直接可行的。
一種方法是使用命名函數。透過建立命名函數並將其用作事件處理程序,您可以稍後透過引用其函數名稱來刪除事件偵聽器。同時,應該在事件處理程序外部聲明 click 變量,以方便其遞增。
var click_count = 0; function myClick(event) { click_count++; if(click_count == 50) { canvas.removeEventListener('click', myClick); } } canvas.addEventListener('click', myClick);
或者,您可以使用閉包建立一個封裝 click_count 變數的函數。這種方法使您能夠跨多個元素遞增計數器。
var myClick = (function( click_count ) { var handler = function(event) { click_count++; if(click_count == 50) { canvas.removeEventListener('click', handler); } }; return handler; })( 0 ); canvas.addEventListener('click', myClick);
最後,如果您希望每個元素都有自己的計數器,請考慮使用接受初始點擊計數參數的匿名函數。
var myClick = function( click_count ) { var handler = function(event) { click_count++; if(click_count == 50) { canvas.removeEventListener('click', handler); } }; return handler; }; canvas.addEventListener('click', myClick( 0 ));
以上是如何在 JavaScript 中從自己的事件處理程序中刪除事件偵聽器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!