覆盖React OnClick事件300ms延迟

时间:2015-11-26 23:36:28

标签: javascript reactjs

在React应用程序中,我有几个实现onClick处理程序的组件。问题是我在Ipad上部署到Safari,因此点击有300毫秒的延迟。消除此延迟的最佳方法是什么?是否可以覆盖React onClick侦听器或类似的东西?我知道有几个回复试图解决这个问题,但我无法添加新方法,我只需要原始的onClick即可。我也知道react-fastclick,但它不适用于React 0.14

1 个答案:

答案 0 :(得分:2)

300毫秒延迟是移动设备一般的javascript事情。 This link告诉你很多方法可以绕过它。我已经非常成功地收听了touchend个事件而不是click,因为触摸事件没有延迟。

其他解决方法包括:

  1. 通过添加元标记<meta name="viewport" content="width=device-width, user-scalable=no">

  2. 来禁用缩放(Chrome和Firefox)
  3. 将视口设置为设备宽度(Chrome 32+)<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=3">

  4. 使用此非标准PointerEvents解决方法(对于IE)

    a,按钮,.myelements {     -ms-touch-action:操纵; / * IE10 /     触摸动作:操纵; / IE11 + * / }