2012-05-12 45 views
0

我正在一個移動網站上工作,當我不希望他們遇到事件時,我正在努力工作。如何防止dragend後的touchend事件?

爲了簡單起見,這是寫像這樣(jQuery中):

el.on('touchend', function(ev) { 
    ev.preventDefault(); 
    // fire an ajax call 
}; 

但是,有時滾動頁面,當用戶將達到該項目,導致Ajax請求開火(從而改變頁面狀態)。

我想不出一種解決方法(ev.stopPropagation()無效),所以我決定觀看dragstart和dragend事件。

el.on('dragstart', function() { 
    el.off('touchend'); 
}); 

el.on('dragend', function(ev) { 
    ev.stopPropagation(); // <-- seems to do nothing 
    // add back the event above (the function is set to a var) 
}); 

如果我的touchend回調內部提醒,我得到確認的是,touchend事件實際上是火做後,我拖着停止。

有沒有人有任何想法如何防止任何其他事件發射?我希望我只是失明而錯過了一些明顯的東西。

在此先感謝!

回答

0

您無法阻止事件發生,您只能防止發生該事件的默認行爲。

如果您擔心在觸發事件觸發前您的頁面狀態發生了變化,您應該更改函數以檢查並解釋狀態更改。

0

我認爲在這種情況下,您應該使用

event.stopImmediatePropagation();