Kon*_*son 37 javascript jquery touch touch-event ios
我有一些代码可以更改表的类.在手机上,有时桌子对于屏幕来说太宽,用户将拖动/滚动以查看内容.但是,当他们触摸并拖动桌子时,它会触发每次拖动的触发.
我如何测试看看触摸是否是由于触摸拖动而产生的?我尝试跟踪dragstart和dragend,但我无法让它工作,这似乎是一种不优雅的方法.有什么我可以添加到下面的内容基本上可以确定,"这个touchend是否已经结束了?"
$("#resultTable").on("touchend","#resultTable td",function(){
$(this).toggleClass('stay');
});
Run Code Online (Sandbox Code Playgroud)
我提前感谢您的帮助.
PS - 使用最新的jquery,而常规点击工作,与touchend相比,它非常慢.
led*_*dje 63
首先将变量设置为false:
var dragging = false;
Run Code Online (Sandbox Code Playgroud)
然后ontouchmove设置拖动到true
$("body").on("touchmove", function(){
dragging = true;
});
Run Code Online (Sandbox Code Playgroud)
然后在拖动完成时,检查拖动是否为真,如果是,则将其视为拖动触摸:
$("body").on("touchend", function(){
if (dragging)
return;
// wasn't a drag, just a tap
// more code here
});
Run Code Online (Sandbox Code Playgroud)
触摸端仍然会触发,但会在运行点击脚本之前自行终止.
为确保下次触摸时尚未将其设置为拖动,请在触摸时将其重置为false.
$("body").on("touchstart", function(){
dragging = false;
});
Run Code Online (Sandbox Code Playgroud)