方案一:来得很直接github上有个fastclick可以完美解决
引入fastclick.js,因为fastclick源码不依赖其他库所以你可以在原生的js前直接加上
1 window.addEventListener( "load", function() {2 FastClick.attach( document.body );3 }, false );
或者有zepto或者jqm的js里面加上
1 $(function() {2 FastClick.attach(document.body);3 });
当然require的话就这样:
1 var FastClick = require(‘fastclick‘);2 FastClick.attach(document.body, options);
方案二:用touchend代替tap事件并阻止掉touchend的默认行为preventDefault()
1 $("#cbFinish").on("touchend", function (event) {2 //很多处理比如隐藏什么的3 event.preventDefault();4 });
方案三:延迟一定的时间(300ms+)来处理事件
1 $("#cbFinish").on("tap", function (event) {2 setTimeout(function(){3 //很多处理比如隐藏什么的4 },320);5 });