我试图在第一次触摸后删除 touchevent。
我尝试了下一个代码,但它不起作用:
ourCanvas.addEventListener("touchstart", function(){
evt.preventDefault();
startGame();
ourGameCanvas.removeEventListener("touchstart");
}, false);`
我试图在第一次触摸后删除 touchevent。
我尝试了下一个代码,但它不起作用:
ourCanvas.addEventListener("touchstart", function(){
evt.preventDefault();
startGame();
ourGameCanvas.removeEventListener("touchstart");
}, false);`
您需要将对原始函数的引用传递给removeEventListener
:
ourCanvas.addEventListener("touchstart", function funcref(evt) {
evt.preventDefault();
startGame();
ourCanvas.removeEventListener("touchstart", funcref, false);
}, false);
在前面的代码中,我将匿名函数表达式转换为命名函数表达式 ( funcref
),以便稍后在函数中使用它。
我重命名ourGameCanvas
为ourCanvas
. 仅当元素、事件名称、函数引用和useCapture 标志与所使用的相同时,才能删除事件侦听器addEventListener
。
该removeEventListener
方法需要与该方法相同的参数addEventListener
......换句话说:
document.body.addEventListener('touchstart',function touchStartHandler(e)
{//use named function
document.body.removeEventListener('touchstart',touchStartHandler, flase);
},false);
attachEvent
and也是如此detachEvent
(如果您编码也支持 IE < 9)