Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除js中的touchevent?_Javascript_Dom Events_Touch Event - Fatal编程技术网

Javascript 如何删除js中的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

我正在尝试在第一次触摸后删除touchevent。 我尝试了下一个代码,但没有成功:

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<9

removeEventListener方法需要与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为非触摸设备或其他设备委派单击事件。关于函数引用,您当然是对的:我提供的代码片段既混乱又不正确