我遇到了一个防止双重事件的问题
所以首先我有一段代码触发
jQuery(window).trigger('swipeForward');
所以这会监听这个触发器
jQuery(window).on('swipeForward', swipeHandlerNext );
滑动处理程序的想法是让用户不能滑动两次并创建一个双事件
然后这将执行 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");
});
});
}
然而,这并不能阻止双滑。
谢谢你的帮助