如果一个按钮,单击触发的事件跟双击触发的是不同的业务,那么这里介绍的就是如何处理双击的过程中不触发单击事件的方法
<html><meta charset="UTF-8" /><button onclick="testClick()" style="width: 150px;">tapMe1</button></html><script>var funcTap = function() {console.log("tap")}var funcDoubleTap = function() {console.log("doubleTap")}var diffTapAndDbTap = (function() {var firstTap = 0;var tapLock = 0;var exeDbTap = 0;return function(funcTap, funcDoubleTap) {if(1 == exeDbTap) { //如果双击事件执行过,那么重置所有状态位firstTap = 0;tapLock = 0;exeDbTap = 0;}if(firstTap == 0) { //0代表单击状态位firstTap = 1;setTimeout(function() {if(tapLock == 0) { //单击没有被锁住,则执行单击事件funcTap();}firstTap = 0;}, 500)return;}if(firstTap == 1) { //1代表单击状态位tapLock = 1; //锁住单击事件funcDoubleTap();exeDbTap = 1; //表示双击事件已经执行过}}})()var testClick = function() {diffTapAndDbTap(funcTap, funcDoubleTap);}</script>
如果觉得《js区分单击双击 双击不会触发单击事件》对你有帮助,请点赞、收藏,并留下你的观点哦!