Javascript jQuery移动刷卡事件也会产生点击:如何忽略产生的点击事件?
我们需要为DIV绑定Javascript jQuery移动刷卡事件也会产生点击:如何忽略产生的点击事件?,javascript,jquery,html,jquery-mobile,jquery-events,Javascript,Jquery,Html,Jquery Mobile,Jquery Events,我们需要为DIV绑定swipe和tap事件。但是,jQuery Mobile(1.3)中的swipe事件也会生成tap事件。我们需要阻止滑动传播到tap处理程序,但是preventDefault不起作用。换句话说,我们希望滑动只触发滑动处理程序,而不触发点击处理程序 正确的方法是什么?您可以对只想监听滑动事件的元素使用解除绑定功能 $(ele).unbind("tap taphold"); 滑动总是在点击之前发生,因此请尝试以下操作: var swipped; $(element).o
swipe
和tap
事件。但是,jQuery Mobile(1.3)中的swipe
事件也会生成tap
事件。我们需要阻止滑动传播到tap处理程序,但是preventDefault
不起作用。换句话说,我们希望滑动只触发滑动处理程序,而不触发点击处理程序
正确的方法是什么?您可以对只想监听
滑动事件的元素使用解除绑定
功能
$(ele).unbind("tap taphold");
滑动
总是在点击
之前发生,因此请尝试以下操作:
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秒后延迟执行tap回调。如果在这1秒内发生了刷卡,那么回调将被丢弃,否则它将被触发。感谢这是三年前的事。。。但是你能给我们演示一下你的意思吗?你甚至可能因为回答这个问题而得到分数:)