RemoveEventListener不起作用

时间:2014-03-30 14:40:21

标签: javascript addeventlistener touch-event

我正在为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');
}

有什么想法吗?

2 个答案:

答案 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); 作为新的事件监听器,但仅在您确实需要时才这样做。