移動瀏覽器模擬鼠標事件以支持僅將處理程序附加到鼠標事件的網站。但是,如果要實現兩種交互模型(一種用於鼠標事件,另一種用於觸摸事件),那麼阻止瀏覽器模擬鼠標事件會很有幫助。如何防止移動瀏覽器中的模擬鼠標事件?
在iOS Safari瀏覽器,這是相當簡單 - 只需touchend運行的preventDefault:
jQuery(document).on('touchend', function(e) {
// Do some logic
e.preventDefault();
});
這是相當明智的。不幸的是,Android的默認瀏覽器和Dolfin都不使用這種技術取消鼠標模擬。 (當defDefault在touchstart上運行時,Dolfin將取消mousedown - 但這不是很有幫助,因爲您不知道手指在touchstart上會採取什麼動作。)
有沒有其他方式有條件地,或者甚至沒有條件,防止模擬鼠標事件發射?
[編輯]
爲了開始理解這個問題(S)好,我在開始的觸摸事件兼容性表:http://labs.cruncher.ch/touch-events-compatibility-table/
此外,來自移動Chrome或FF的經驗評論非常感謝。 – stephband 2012-03-11 17:09:59
在附加鼠標事件之前,您能否檢測到它是否爲移動瀏覽器? – 2012-03-11 17:12:02
@JaredFarrish移動瀏覽器檢測的方法絕不是100%準確的。 – 2012-03-11 17:14:20