Ghostclicks在移动应用程序中

鬼点击有很多材料/post,我试图更好地理解它。 所以我理解它的方式,鬼点击的原因是在触摸事件后约300ms被调度的点击事件。 jQuery Mobile建议在有可能更改手指位置下方的内容时不使用他们的vclick事件。

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

如果是这种情况,如果我只使用tap事件而没有任何click事件,那么这是不是意味着我可以完全阻止鬼点击?

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

点击事件延迟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毫秒的延迟。

如果页面上可以单击的所有内容都安装了相应的vclick jQuery事件处理程序,那么一种简单的方法可以阻止ghost点击,在body上创建一个touchend事件处理程序并从中调用preventDefault

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

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