我們需要綁定到DIV的swipe
和tap
事件。但是,jQuery Mobile(1.3)中的swipe
事件也會產生一個tap
事件。我們需要停止傳播到tap處理程序,但preventDefault
不起作用。換句話說,我們希望滑動只觸發滑動處理程序而不觸發滑動處理程序。jQuery Mobile滑動事件也會產生點擊:如何忽略產生的點擊事件?
什麼是正確的方法來做到這一點?
我們需要綁定到DIV的swipe
和tap
事件。但是,jQuery Mobile(1.3)中的swipe
事件也會產生一個tap
事件。我們需要停止傳播到tap處理程序,但preventDefault
不起作用。換句話說,我們希望滑動只觸發滑動處理程序而不觸發滑動處理程序。jQuery Mobile滑動事件也會產生點擊:如何忽略產生的點擊事件?
什麼是正確的方法來做到這一點?
您只能在要聆聽swipe
事件的元素上使用unbind
函數。
$(ele).unbind("tap taphold");
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');
}
}
});
我們需要綁定到兩個事件爲同一元素,很遺憾。 – Crashalot
在這種情況下,我認爲您應該在1秒後推遲水龍頭回調的執行。如果在此1秒內發生刷卡,則回撥將被丟棄,否則將被觸發。 – coderek
欣賞這是三歲......但請你給我們一個示範你的意思?你甚至可以得到布朗尼點回答這個問題:) – Noobster