4

我知道已经有很多关于这个的话题,但我无法找到解决方案。

问题:并非每个滑动手势都能被识别。

设置: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 提前谢谢

4

0 回答 0