繁体   English   中英

Android 4.2.2中的Jquery Mobile滑动事件无法正常工作

[英]Jquery Mobile swipe events in Android 4.2.2 not working

我编写了一个使用JQuery移动swipeleft和swiperight事件的移动Web应用程序,但这些不适用于运行Android 4.2.2的三星Galaxy S4。 在标准Web浏览器或Chrome中运行Web应用程序具有相同的问题:未检测到滑动事件。

以下是我试图检测在我测试过的其他设备上工作正常的事件,甚至是Android设备(但不是Android 4.2.2):

$('#showImage').on("swipeleft", function (event) {
if (currentScale != initialScale) return;
if (currentPage < maxPage) {
  ++currentPage;
  img.src = document.getElementById("page" + zeroPad(currentPage, 2) + "url").value;
}
});

$('#showImage').on("swiperight", function (event) {
if (currentScale != initialScale) return;
if (currentPage > 1) {
  --currentPage;
  img.src = document.getElementById("page" + zeroPad(currentPage, 2) + "url").value;
}
});

在Android 4.2.2中有什么我可以做的,代码方式来捕获这些事件吗?

你在这里有两个问题。

首先是由JQM中已经解决但尚未实现的错误引起的https://github.com/jquery/jquery-mobile/issues/5534

基本上,滑动事件测量的最小距离必须考虑设备的像素密度。 所以在JQM的情况下,touch.js的以下更改将解决问题:

horizontalDistanceThreshold = window.devicePixelRatio >= 2 ? 15 : 30;
verticalDistanceThreshold = window.devicePixelRatio >= 2 ? 15 : 30;

第二个是todo与kitkat发射touchcancel而不是touchend。 解决方案是将touchcancel委托给touchend。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM