通过fastclick源码分析彻底解决tap“点透”(13)

好了,为什么基本相同的代码,zepto会点透而fastclick不会呢?

原因是zepto的代码里面有个settimeout,而就算在这个代码里面执行e.preventDefault()也不会有用

这就是根本区别,因为settimeout会将优先级较低

有了定期器,当代码执行到setTimeout的时候, 就会把这个代码放到JS的引擎的最后面 

而我们代码会马上检测到e.preventDefault,一旦加入settimeout,e.preventDefault便不会生效,这是zepto点透的根本原因

结语

虽然,这次走了很多弯路,但是最后终于解决了问题

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/155.html