移动浏览器模拟鼠标事件,以支持只附加处理程序到鼠标事件的网站.但是,如果要实现两个交互模型 – 一个用于鼠标事件,另一个用于触摸事件,那么有助于防止浏览器模拟鼠标事件.
在iOS Safari上,这相当简单 – 只需在touchend上运行preventDefault:
jQuery(document).on('touchend',function(e) { // Do some logic e.preventDefault(); });
这是非常理智的不幸的是,Android的默认浏览器和Dolfin都不会使用这种技术取消鼠标模拟. (Dolfin将在touchDefault在touchstart上运行时取消mousedown,但这不是非常有用的,因为您不知道手指在touchstart上会采取什么动作.)
有没有其他方式有条件地,甚至没有条件地阻止模拟的鼠标事件触发?
[编辑]
为了更好地了解问题,我已经开始了一个触摸事件兼容性表:http://labs.cruncher.ch/touch-events-compatibility-table/