如何jQuery的用于处理在点击计时器,DBLCLICK分离(How can jQuery be u

2019-07-19 08:28发布

我使用的jQueryFileTree http://abeautifulsite.net/notebook/58 ,我想和DBLCLICK区分点击事件,点击总是以DBLCLICK触发。

谷歌搜索有关领导将在其中点击是由踢,当DBLCLICK不取消定时器处理的技术。

是否有某种方式这可以用jQuery和jQuery的例子在一个优雅的方式来使用?

Answer 1:

您可以使用setTimeout()clearTimeout()来实现的定时器功能:

var timeout;
var delay = 500;  // Delay in milliseconds

$("...")
    .click(function() {
        timeout = setTimeout(function() {
            // This inner function is called after the delay
            // to handle the 'click-only' event.
            alert('Click');
            timeout = null;
        }, delay)
    }
    .dblclick(function() {
        if (timeout) {
            // Clear the timeout since this is a double-click and we don't want
            // the 'click-only' code to run.
            clearTimeout(timeout);
            timeout = null;
        }
        // Double-click handling code goes here.
        alert('Double-click');
    }
;


Answer 2:

jQuery的旌宇为此提供了一个整洁优雅的解决方案,通过实施singleclick自定义事件。 通过这样做,你可以使用它就像任何其他的事件,所以:

$('#el').singleclick(function(){});
// or event
$('#el').bind('singleclick', function(){});

它还提供了自定义事件的一系列点击的姓氏和点击。 而lastclick自定义事件实际上通过点击量回来了! 所以,你可以做到这一点!

$('#el').lastclick(function(event,clicks){
    if ( clicks === 3 ) alert('Tripple Click!');
});

你可以找到相应的演示陈列宣传我刚才说的对不对这里和正确定义自定义事件的源代码在这里 。 这是根据AGPL许可证开源的,所以你可以随意抢你需要什么出来呢无忧! :-)它也积极地在日常基础上发展起来,所以你永远不会成为短期的支撑。

但最重要的是它是干的插件/效果框架,让您可以更轻松地开发插件和扩展。 所以,我希望这有助于实现这一目标!



Answer 3:

看看下面的代码

$("#clickMe").click(function (e) {
    var $this = $(this);
    if ($this.hasClass('clicked')){
        alert("Double click");
        //here is your code for double click
        return;
    }else{
         $this.addClass('clicked');
        //your code for single click
         setTimeout(function() { 
                 $this.removeClass('clicked'); },500);
    }//end of else
});

演示放在这里http://jsfiddle.net/cB484/



文章来源: How can jQuery be used to handle timer in click, dblclick separation