我已经在我的应用程序中设置了一个swipeleft事件来在表单的字段之间移动。所有的字段都是动态生成的,所以我不在页面之间交换,我正在清理并重新生成所有的DOM元素。问题在于,每次我在页面上滑动时,或者在页面上触摸或点按任何内容时,滑动事件都会触发。JQuery Mobile刷卡事件只触发每隔一次刷卡
下面是设置了事件的代码:包含信息的用户可以从挑选
$(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
你正在使用哪个版本?将_swipe_监听器附加到'pageshow'中是不正确的,它们将被复制。 – Omar 2014-10-17 16:34:03
@Omar感谢您指出,这是有道理的。如果我附加的元素在链接到index.html的单独的html文件中,我仍然可以使用'deviceready'来附加这些处理程序? – ScoobyDrew18 2014-10-17 17:20:03
你在使用科尔多瓦吗?它应该是这样的http://stackoverflow.com/a/25542805/1771795为重写刷卡默认值,它应该被包裹在'mobileinit'事件中并放置在jQuery.js之后和JQM.js之前 – Omar 2014-10-17 21:07:50