屏蔽双击事件——避免双击触发2次单击

背景:

单击过快或使用双击后,会优先触发单击动作,可能出现执行多次单击动作,而规避方案就是:当出现双击动作时,不执行任何单击动作。

原理:延时执行单击动作

方案1:

var flag = true;
function clickHandle(e) {
    e = e || window.event;
    if (flag) {
        flag = false;
        //此处为要执行的函数;
        setTimeout(function() {
            flag = true;
        }, 250)
    } else {
        e.preventDefault();
    }
}

方案2:

var timer = null;
function clickHandle(e) {
    clearTimeout(timer);
    timer = setTimeout(function() { //初始化一个延时
        //此处为要执行的函数;
        // console.log(e);
    }, 250)
};
function dblclick() { //双击事件会先触发两次单击事件,然后再执行双击事件,使用清除定时器来达到双击只执行双击事件的目的
    clearTimeout(timer);
    console.log("2");
};

猜你喜欢

转载自www.cnblogs.com/wheatCatcher/p/11268793.html
今日推荐