Javascript 如何删除js中的touchevent?
我正在尝试在第一次触摸后删除touchevent。 我尝试了下一个代码,但没有成功:Javascript 如何删除js中的touchevent?,javascript,dom-events,touch-event,Javascript,Dom Events,Touch Event,我正在尝试在第一次触摸后删除touchevent。 我尝试了下一个代码,但没有成功: ourCanvas.addEventListener("touchstart", function(){ evt.preventDefault(); startGame(); ourGameCanvas.removeEventListener("touchstart"); }, false);` 您需要将对原始函数的引用传递给: 在前面的代码中,我将匿名函数表达式转换为命名函数表达式f
ourCanvas.addEventListener("touchstart", function(){
evt.preventDefault();
startGame();
ourGameCanvas.removeEventListener("touchstart");
}, false);`
您需要将对原始函数的引用传递给: 在前面的代码中,我将匿名函数表达式转换为命名函数表达式funcref,以便以后可以在函数中使用它
我将我们的游戏画布重命名为我们的画布。只有当元素、事件名称、函数引用和useCapture标志与所使用的相同时,才能删除事件侦听器。您需要将对原始函数的引用传递给: 在前面的代码中,我将匿名函数表达式转换为命名函数表达式funcref,以便以后可以在函数中使用它 我将我们的游戏画布重命名为我们的画布。只有当元素、事件名称、函数引用和useCapture标志与所使用的相同时,才能删除事件侦听器。removeEventListener方法需要与addEventListener方法相同的参数。。。换言之:
document.body.addEventListener('touchstart',function touchStartHandler(e)
{//use named function
document.body.removeEventListener('touchstart',touchStartHandler, flase);
},false);
attachEvent和detachEvent也是如此,以防您也在编码以支持IE<9removeEventListener方法需要与addEventListener方法相同的参数。。。换言之:
document.body.addEventListener('touchstart',function touchStartHandler(e)
{//use named function
document.body.removeEventListener('touchstart',touchStartHandler, flase);
},false);
attachEvent和detachEvent也是如此,以防您编码为支持IE<9此示例不起作用,因为touchStartHandler是一个命名函数表达式,而不是函数声明。因此,命名函数在touchStartHandler函数的作用域之外不可用。旁注:IE8-不支持画布和触摸事件,所以不要担心attachEvent。@RobW我知道IE8不支持画布和触摸事件,以防OP为非触摸设备或其他设备委派单击事件。关于函数引用,您当然是对的:我提供的代码片段令人困惑且不正确。此示例不起作用,因为touchStartHandler是一个命名函数表达式,而不是函数声明。因此,命名函数在touchStartHandler函数的作用域之外不可用。旁注:IE8-不支持画布和触摸事件,所以不要担心attachEvent。@RobW我知道IE8不支持画布和触摸事件,以防OP为非触摸设备或其他设备委派单击事件。关于函数引用,您当然是对的:我提供的代码片段既混乱又不正确