簡體   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