有没有办法消除移动触摸设备上的点击延迟?
在移动设备(iPad、Galaxy Tab)上查看网站时,单击某个元素(常规链接或使用 javascript/jquery 可单击的任何其他内容)时总会出现延迟。
在网上阅读时,我发现浏览器使用的是 touchstart 事件,然后是 touchend 事件,然后触发常规的 click 事件。有没有办法让点击响应更快并删除延迟的点击事件?也许通过使用 javascript,或者其他什么?
When viewing a web site on a mobile device (iPad, Galaxy Tab) there's always a lag when I click an element (regular link or anything else that is made clickable using javascript/jquery).
While reading online, I found out that the browser is using touchstart followed by touchend events, and afterwards it triggers the regular click event. Is there a way to have a more responsive tap and remove the click event that is delayed? Maybe by using javascript, or something else?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
改编自马特的库(https://stackoverflow.com/a/9370637/1491212)本身改编自谷歌代码,我写了一个 jQuery 插件。
像这样使用:
$('mySelector').fastClick(handler);
Adapted from Matt's library (https://stackoverflow.com/a/9370637/1491212) itself adapted from google code, I wrote a jQuery plugin.
Use like this :
$('mySelector').fastClick(handler);
如果您自己编写网页,您可以为 touchstart 和 touchend 注册一个监听器,并直接从 touch end 触发 onclick 代码,没有任何延迟。
如果您不处理触摸移动中的事件,浏览器将向该元素分派(有一些滞后)点击事件,
请查看 google 的此描述以创建“快速按钮”: http://code.google.com/intl/de-DE/mobile/articles/fast_buttons.html< /a>
if you are writing a web page your self you can register a listener for touchstart and touchend and trigger the onclick code directly from on touch end without any delay.
If you don`t handle the event in touch move the browser will dispatch (with some lag) a click event to the element
Take a look at this description from google to create "fast buttons": http://code.google.com/intl/de-DE/mobile/articles/fast_buttons.html
如果设备支持像现代化器一样的触摸,我会使用检测。我根据结果(如果是触摸设备)使用选项
'click'
或'touchend'
填充名为touchClick
的变量。在 jquery 中,我简单地调用:它的占用空间非常小。
I use detection if the device support touch like modernizer. i fill a var called
touchClick
with the options'click'
or'touchend'
bases on the outcome if it is a touch device or not. In jquery I simply call:It has a very small footprint.