【JavaScript】jQuery 实现耦合的鼠标单击与双击事件

jq 实现单击双击事件

jq 的 dblclick 和 click 互相独立,在触发 dblclick 的基础上也会触发两次 click
这里演示一种使其互相耦合的 demo

var click = false;
$().on('click', function () {
    
    
    if (click) {
    
    
        // 双击
        click = false;

    } else {
    
    
        click = true;
        setTimeout(function () {
    
    
            if (click) {
    
    
                // 单击
                click = false;
            }
        }.bind(this), 200)
    }
});

封装:

function dblclick(elementSelector, childSelector, dblCallback, clickCallback = undefined) {
    
    
    var click = false;
    $(elementSelector).on('click', childSelector || '', function () {
    
    
        if (click) {
    
    
            // 双击
            click = false;
            dblCallback.bind(this)();
        } else {
    
    
            click = true;
            setTimeout(function () {
    
    
                if (click) {
    
    
                    // 单击
                    console.log(this);

                    click = false;
                    clickCallback && clickCallback.bind(this)();
                }
            }.bind(this), 200)
        }
    });
}

猜你喜欢

转载自blog.csdn.net/qq_16181837/article/details/105474156