3

有很多关于鬼点击的材料/帖子,我正在努力更好地理解它。所以我理解它的方式,鬼点击的原因是click事件在触摸事件后约 300 毫秒被调度。jQuery Mobile 建议vclick,只要有可能更改手指位置下方的内容,就不要使用他们的事件。

我的第一个问题click是:这是否意味着只有当目标元素与最初触摸的元素不同时才会触发幽灵点击?所以,比如说,当一个按钮被触摸时,我写了一个数据库条目——没有别的。有没有鬼点击的机会?

如果是这种情况,这是否意味着如果我只使用事件而不使用任何事件,我可以完全防止 tap点击click

我的最后一个问题是,如果我可以简单地告诉浏览器在使用 PhoneGap 时不要使用 300 毫秒延迟(这将立即解决问题),但我只是猜测我不能这样做,因为它可能是硬编码的浏览器。

4

2 回答 2

3

点击事件延迟 300 毫秒,以检测双击或胖手指错误。

是的,您应该尽可能使用触摸事件。

是的,有很多方法可以通过做一些 JS 来实现快速点击。例如:

  1. https://developers.google.com/mobile/articles/fast_buttons
  2. https://forum.jquery.com/topic/how-to-remove-the-300ms-delay-when-clicking-on-a-link-in-jquery-mobile
  3. http://labs.ft.com/2011/08/fastclick-native-like-tapping-for-touch-apps/

您不必忍受 300 毫秒的延迟。

于 2012-11-04T17:50:11.593 回答
2

如果页面上所有可以点击的东西都vclick安装了适当的 jQuery 事件处理程序,那么阻止幻像点击的一种简单方法是touchend在主体上创建一个事件处理程序并preventDefault从中调用:

$(document.body).on('touchend', null, function(e) {
  e.preventDefault();
});

请注意,这将禁用 touches 的常规点击,因此您拥有的任何常规链接或表单输入都将停止工作,除非您向它们添加 vclick 处理程序。

于 2013-06-17T13:29:42.667 回答