fastclick.js一般用来解决手机端点击延迟问题,但是今天遇到一个比较坑的问题,就是用了fastclick之后,导致无法用js主动触发事件,具体如下所示:

上面是一个很普通的选择文件的功能,当我们点击按钮之后,我们利用$(el).trigger('click')或者直接$(el)[0].click(),但是我们发现在ios设备上无法触发选择文件,但是多点两下好像又可以选择。

原因是fastclick对点击做了处理,具体怎么处理我也不太清楚,这里就说一下如何处理这个问题。

先来看一个处理过的例子:

原理很简单,既然对click(touch一系列)做了处理,那么就直接触发事件,这个从面上还是可以正常工作的。关键代码就是:$(el)[0].dispatchEvent(new MouseEvent('click'))。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字