在一個簡單的遊戲應用中,我試圖通過匿名事件回調函數的一些參數。我只能使用匿名函數來完成它,因爲它適合上下文(它的範圍標識參數)。問題是遊戲有重新啓動的選項。重新啓動後,它將添加到相同節點的新事件監聽器,在這裏您可能會猜到舊的事件監聽器仍然存在,這會導致不正確的功能和應用程序重載。我能想到的解決方案是在添加新事件之前通過刪除舊的eventListeners來「刷新」。但我無法找到任何方式考慮事件回調函數是匿名的!在使用內聯匿名函數時刪除事件監聽器
那麼,有什麼可能的替代解決方案?
var adder = function(colorBox, num){
colorBox.addEventListener('click', function(){
eventCall(this, num);
});
}
var eventCall = function(t, num){
var clickedBox = t.style.backgroundColor;
....
看看這個解決方法,從彩盒刪除事件監聽器 - http://stackoverflow.com/questions/19469881/remove-all-特定類型的事件偵聽器 – vabii
我嘗試過..,我猜測它有一些缺點..,這使得它根本沒有幫助。 –