我知道已经有很多关于这个的话题,但我无法找到解决方案。
问题:并非每个滑动手势都能被识别。
设置:Android 4.0.4、PhoneGap 2.1 和 jQuery Mobile 1.2
在 touchMove(滚动或滑动)上,我得到(几乎每次)
Miss a drag as we are waiting for WebCore's response for touch down.
问题似乎是我的设置无法正确检测到 touchstop。
我目前使用以下内容进行刷卡:
(".mainList").swipeleft(function() {
$.mobile.changePage("status.html", {
transition : "slide"
});
console.log("swipe left!!!");
});
这是为了使每次都能正确触发滑动:
// deactivate normal touch handling for swipe to work
document.ontouchmove = function(event) {
event.preventDefault();
};
这种方式每次都可以滑动,但滚动(当然)不再起作用。您只能将此功能应用于页面标题,以使标题“可滑动”并且内容可滚动但不能正确滑动。但这不可能是真正的解决方案。
我尝试了从各种线程中收集到的以下提示:
- 使用“.on”函数绑定滑动事件
- 将滑动事件绑定到一个类而不是一个 id
- 尝试使用“ontouchstart”和“ontouchend”检测水平滚动 这不起作用,因为每次滑动都不会触发 touchend 事件。
- 尝试使用不同的滑动常量值,例如 $.event.special.swipe.scrollSupressionThreshold
正如我认为的那样,设置可能没有显示滑动是真正的滑动还是水平滚动:
- 通过 css 溢出防止水平滚动
- 通过使用自定义的cordovarwebview 防止水平滚动
- 在我的 html 中使用不同的视口元标记值来设置正确的页面宽度
除 event.preventDefault() 之外的所有试验;方法不要改变情况:只有每第二、第三或第四次滑动手势被正确识别。
任何有同样问题的人,也许有解决方案?:D 提前谢谢