我试图将用户单击对象的能力限制为一定的时间限制。我环顾四周,发现setTimeout()显然是用于此类事情的正确函数。我已经将该函数应用于我的代码,但无法正常工作。我现在在想/知道问题是我的代码中的setTimeout并没有限制我需要做的实际点击事件。这是我的点击代码的片段:

function clickRun(event) {
    var $objectVersion = correspondingObject(event.target.id);
    if (isAnyVisible() == false) { // none open
        $objectVersion.makeVisible();
    } else if (isAnyVisible() && $objectVersion.isVisible()) { //click already open div
        $objectVersion.makeInvisible();
    } else if (isAnyVisible() && $objectVersion.isVisible()==false) { //different div open
        searchAndDestroy();
        $objectVersion.delay(600).makeVisible();
    };
 };

$('.ChartLink').click(function(event) {
    setTimeout(clickRun(event),5000);
});


我还创建了一个JSFiddle来表示我在说什么:http://jsfiddle.net/FHC7s/

有没有一种方法可以限制页面上的实际点击检测?

最佳答案

我认为最简单的方法是跟踪上一次单击的时间,如果当前单击在此之后过早,则不要执行任何操作:

onClick = function(){
    if(new Date().getTime() - lastCheck < MIN_CLICK_SPACING) return;
}

10-08 08:03