Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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 Android浏览器无法正确处理touchmove事件_Javascript_Android_Touch_Touchmove - Fatal编程技术网

Javascript Android浏览器无法正确处理touchmove事件

Javascript Android浏览器无法正确处理touchmove事件,javascript,android,touch,touchmove,Javascript,Android,Touch,Touchmove,当我尝试检查中的touchmove事件时,它在Chrome和Opera for Android中只触发一次,然后立即触发touchcancel事件,而不是继续触发touchmove事件 基于这两种情况,以及Firefox for Android和Android默认浏览器中的touchmove事件的行为,在我看来,触摸事件的工作方式应该是当触摸仍在页面上时,touchmove事件不断触发。但之后,我收到了以下日志消息: touchstart事件;从屏幕上的(140197)或页面上的(381536)

当我尝试检查中的
touchmove
事件时,它在Chrome和Opera for Android中只触发一次,然后立即触发
touchcancel
事件,而不是继续触发
touchmove
事件

基于这两种情况,以及Firefox for Android和Android默认浏览器中的
touchmove
事件的行为,在我看来,触摸事件的工作方式应该是当触摸仍在页面上时,
touchmove
事件不断触发。但之后,我收到了以下日志消息:

touchstart事件;从屏幕上的(140197)或页面上的(381536)开始。
接触端事件;从屏幕上的(未定义,未定义)或页面上的(未定义,未定义)开始。
touchstart事件;从屏幕上的(181137)或页面上的(492372)开始。
触摸移动事件;从屏幕上的(182153)或页面上的(495416)开始。
触摸取消事件;从屏幕上的(未定义,未定义)或页面上的(未定义,未定义)开始。
这就是我第一次点击屏幕(通过
touchstart
touchend
显示),然后拖动屏幕(
touchstart
touchmove
touchcancel
)时发生的情况。与上面提到的相同,touchcancel事件应该只在有干扰的情况下运行,例如浏览器界面(如果我理解正确的话)

由于我只是简单地用手指在身体上滑动,根本没有离开窗户,我真的对此感到困惑,那么有人知道为什么会发生这种情况吗


我在Android版的Chrome 32和Opera 19中得到了这个意想不到的结果。

结果表明,这里的问题只是事件处理程序中没有
事件。preventDefault()
,因此原始操作仍然执行,这显然中断了触摸事件。要解决此问题,只需在当前事件处理程序函数中添加
e.preventDefault()
,即可取消当前事件,并使其在Chrome和Opera中也能正常工作


.

我只是使用onpointerdown、onpointermove和onpointerup解决了这个问题。最后通过添加
ontouchstart=(e)=>e.preventDefault()
来修复它,谢谢你的指针!