我正在为touchmove添加一个事件监听器,然后将其删除。有人可以告诉我什么是错的。添加事件工作正常,但我无法删除它,因为所有的事件监听器都使我的程序像疯了一样。
function init() {
var node = document.getElementById('playArea');
node.addEventListener('touchmove', startGame);
node.addEventListener('touchend', endGame)
}
function endGame() {
var node = document.getElementById('playArea');
node.removeEventListener('touchmove', removed, false);
node.removeEventListener('touchend', removed, false);
}
function removed() {
console.log('event removed');
}
有什么想法吗?
答案 0 :(得分:0)
你有一个错字:
function init() {
var node = document.getElementById('playArea');
node.addEventListener('touchmove', startGame);
^
node.addEventListener('touchend', endGame)
}
答案 1 :(得分:0)
removeEventListener
将第二个参数作为传递给addEventListener
的相同函数,因此它知道要删除哪个事件侦听器 - 使用{{1超过add/removeEventListener
是因为你可以为同一个事件拥有多个处理程序。
.onEvent =
这会删除事件。如果需要,您可以添加node.removeEventListener("touchmove", startGame);
node.removeEventListener("touchend", endGame);
作为新的事件监听器,但仅在您确实需要时才这样做。