0

嗨,我正在为我的 jquery ajax 引擎开发单击双击事件处理程序。这个想法是您可以单击或双击一个按钮。我自己写了这个,但我不明白为什么它不起作用。

这是代码:

$('body').on('click', '.double-click', function() {
    var that = this;
    var dblclick = $(that).data('clicks');
    if(!dblclick){
        dblclick = 0;
    }
    dblclick = dblclick + 1;
    $(that).data('clicks', dblclick);
    dblclick = $(that).data('clicks');
    console.log('click - ' + dblclick);

    if(dblclick > 1){
        $(this).data('clicks', 0);
        //ajaxloader(this, 1);
        alert('dubbel-klik');
        console.log('dubbelcik event');
    }   

    setTimeout(function() {
        if(dblclick == 1){
            $(that).data('clicks', 0);
            //ajaxloader(this, 0);
            alert('klik');
            console.log('single click event');
        }
    }, 400);
});

它可能看起来有点过于复杂,但那是因为我尝试了一些东西。我遇到的问题是,当我双击双击时,单击也会执行。当我使用 重置时,这怎么可能$(this).data('clicks', 0);?然后计数器必须为 0,并且超时中的 if 语句必须为假。

有人知道出了什么问题!?

是的,请在此处查看工作演示:单击 click en dubbelclick 按钮

4

1 回答 1

2

你把这件事复杂化了。jQuery 内置了所有这些:

$('body').on('click', function(){ 
    alert("single click")
});
$('body').on('dblclick', function(){
    alert("double click");
});

这也将单击单个:您可能想查看此线程以了解您可以采取哪些措施来防止这种情况发生: Javascript with jQuery: Click and double click on same element, different effect, one disables other

于 2013-05-03T20:45:23.127 回答