JQuery Mobile滑动事件仅触发所有其他滑动

时间:2014-10-17 16:32:35

标签: android jquery-mobile

我在我的应用中设置了一个swipeleft事件,以便在表单的字段之间移动。所有字段都是动态生成的,所以我不在页面之间交换,我正在清理并重新生成所有DOM元素。问题是滑动事件仅在我在页面上滑动时触发,或者触摸或点击页面上的任何内容。

以下是设置事件的代码:

$(document).delegate("#scorePage", "pageshow", function() {
  $.event.special.swipe.scrollSupressionThreshold = 10;
  $.event.special.swipe.horizontalDistanceThreshold = 30;
  $.event.special.swipe.durationThreshold = 500;
  $.event.special.swipe.verticalDistanceThreshold = 75;
  $('#divFoo').on("swipeleft", swipeLeftHandler);
  $('#divFoo').on("swiperight", swipeRightHandler);
  tableCreate(traits[0].keyboardID);
}); 

对于上下文,tableCreate将动态生成的表放入divFoo,其中包含用户可以从中选择的信息。这是事件代码本身:

function swipeLeftHandler() {
  $("#divFoo").empty();
  traitIndex++;
  tableCreate(traits[traitIndex].keyboardID);
}

为什么我的滑动事件每隔一次只会在页面上滑动时触发?

现在主要在Android上进行测试,如果这样做有所不同。

编辑我正在使用JQuery Mobile 1.4.4版

1 个答案:

答案 0 :(得分:0)

通过简单地滚动我自己的这些事件的实现,我想出了解决这个问题的方法。这里有一些关于如何做类似事情的示例代码:

https://snipt.net/blackdynamo/swipe-up-and-down-support-for-jquery-mobile/

如果其他人使用此代码修复我的同一问题,请确保知道该文章正在实施swipeup和swipeown,因此您必须对其进行调整。最后,我并不完全确定此代码与swipeleft和swiperight的实际实现之间的差异,但这种方法始终有效,因此我减少了损失并继续使用它。