在一个简单的游戏应用中,我试图通过匿名事件回调函数的一些参数。我只能使用匿名函数来完成它,因为它适合上下文(它的范围标识参数)。问题是游戏有重新启动的选项。重新启动后,它将添加到相同节点的新事件监听器,在这里您可能会猜到旧的事件监听器仍然存在,这会导致不正确的功能和应用程序重载。我能想到的解决方案是在添加新事件之前通过删除旧的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
我尝试过..,我猜测它有一些缺点..,这使得它根本没有帮助。 –