FastClick和click()事件触发了麻烦

时间:2014-06-20 13:45:15

标签: javascript jquery html web webkit

当我在我的项目中加入FastClick时,我遇到了麻烦。一切正常,移动设备上300毫秒延迟丢失,但编程触发click()事件现在无法在移动设备上运行。

2 个答案:

答案 0 :(得分:0)

它在文档中说明了(好吧,你在高级链接下的页面)

  

这是needsclick类的用武之地。将类添加到需要非合成点击的任何元素。

因此,将类needsclick添加到要手动触发“单击”

的元素

答案 1 :(得分:-1)

我有完全相同的问题,最后我摆脱了FastClick,并在触发点击事件时遇到fastclick的一些问题后做了我自己的简单解决方案。这个例子使用jQuery。

$(document).on('touchstart', '.clickable', function(e){
    // This prevents the click to be completed
    // so will prevent the annoying flickering effect
    e.preventDefault();
});

您必须将.clickable类添加到您想要从300米延迟中取出的任何元素。

然后,更改touchstart事件的所有点击事件,这样

$('#elementid').click(function(e){
   console.log('ex event'); 
}

现在必须是这个

$(document).on('touchstart', '#elementid', function(e){
   console.log('new event'); 
}