我通过将Famo.us的Fastclick放在我的主要视图之一的顶部来使用它,如下所示:

 var FastClick = require('famous/inputs/FastClick');

在iOS7 Safari和Chrome浏览器中,Fastclick可以消除300ms的延迟,但是当我单击从DOM中移除“覆盖”表面的表面(例如,后退按钮)时,这两个表面-被移除的表面和新的表面- -接收点击事件。因此,例如,如果我单击覆盖表面上的“后退”按钮,并且在其下面的表面上有一个“后退”按钮,则两个后退按钮都会触发并移除两个表面。

当我删除FastClick时,问题已解决,但300ms的延迟返回。

我已经在台式机上检查了该问题,即使存在FastClick,该问题也没有发生。我也用console.log'd click事件,它们只触发一次。这表明,在移动设备上,问题出在从DOM去除“覆盖”表面之后,我的手指仍在玻璃上。

关于如何解决的任何想法?

最佳答案

想出了如何防止这种情况。

this.buttonSurface.on('click', function(e){
    if(e.detail != null) return false;
}.bind(this));

关于javascript - Famo.us“Fastclick”在移动设备上触发两次点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24020535/

10-12 15:25