我们需要绑定到DIV的swipe
和tap
事件。但是,jQuery Mobile(1.3)中的swipe
事件也会产生tap
事件。我们需要阻止滑动传播到tap处理程序,但preventDefault
不起作用。换句话说,我们希望滑动只触发滑动处理程序,而不是触发轻击处理程序。
这样做的正确方法是什么?
答案 0 :(得分:1)
swipe
始终在tap
之前发生,请尝试以下操作:
var swipped;
$(element).on('swipe tap',function(evt){
if(evt.type=='swipe') {
swipped = true;
if(evt.swipestart.coords[0]>evt.swipestop.coords[0]){
console.log('swipe left to right')
} else {
console.log('swipe right to left')
}
} else {
if(swipped){ // ignore this tap
swipped=false;
} else {
console.log('tap');
}
}
});
答案 1 :(得分:0)
您可以对要收听unbind
事件的元素使用swipe
函数。
$(ele).unbind("tap taphold");