我已經在我的應用程序中設置了一個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