二重イベントを防止するという問題が発生しています
まず、トリガーするコードがあります
jQuery(window).trigger('swipeForward');
これはこのトリガーをリッスンします
jQuery(window).on('swipeForward', swipeHandlerNext );
スワイプ ハンドラーの考え方は、ユーザーが 2 回スワイプして二重イベントを作成できないようにすることです。
次に、swipeHandlerNext 関数を実行します。
function swipeHandlerNext(event) {
// If event isn't already marked as handled, handle it
if(event.handled !== true) {
// Kill event handler, preventing any more clicks
jQuery(".pageSize").off("swipeForward");
// Do your stuff here
pageSize = jQuery(".mainHeader").width();
slide("forward", pageSize);
console.log(" swipe complete page forward via swipe");
// Mark event as handled
event.handled = true;
}
return false;
}
これは明らかにスライド機能を実行します。これは .animate コマンドを持つものです
function slide(data, pageSize) {
if (!pageSize) {
pageSize = jQuery(".mainHeader").width();
}
var promise = calcLeft(data, pageSize);
jQuery.when(promise).then(function(result) {
console.log(result);
jQuery('#pageHolder').delay(500).animate({
left: result
}, 400, function() {
console.log("animation started");
calcNav(pageSize);
calcPage(pageSize);
jQuery(".pageSize").on("swipeForward", swipeHandlerNext);
console.log("animation complete");
});
});
}
ただし、ダブルスライドを防止するものではありません。
助けてくれてありがとう