我在我的应用中设置了一个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版
答案 0 :(得分:0)
通过简单地滚动我自己的这些事件的实现,我想出了解决这个问题的方法。这里有一些关于如何做类似事情的示例代码:
https://snipt.net/blackdynamo/swipe-up-and-down-support-for-jquery-mobile/
如果其他人使用此代码修复我的同一问题,请确保知道该文章正在实施swipeup和swipeown,因此您必须对其进行调整。最后,我并不完全确定此代码与swipeleft和swiperight的实际实现之间的差异,但这种方法始终有效,因此我减少了损失并继续使用它。