gpt4 book ai didi

javascript - Android 4.2.2 中的 Jquery Mobile 滑动事件不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:11 24 4
gpt4 key购买 nike

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

以下是我如何尝试检测在我测试过的其他设备上运行良好的事件,甚至是 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;

第二个是使用 kitkat 触发 touchcancel 而不是 touchend。解决方法是将touchcancel委托(delegate)给touchend。

关于javascript - Android 4.2.2 中的 Jquery Mobile 滑动事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com