限制页面上的点击检测[javascript]

时间:2013-12-24 02:08:39

标签: javascript jquery click settimeout

我试图将用户点击某个对象的能力限制在一定的时间限制内。我环顾四周,发现显然,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/

有没有办法限制页面上的实际点击检测?

3 个答案:

答案 0 :(得分:2)

我认为最简单的方法是跟踪上一次点击的时间,如果当前点击过早,那么就不要做任何事情:

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

答案 1 :(得分:1)

看看这个JSFiddle,我已对其进行了设置,以便您可以在检测到点击后让按钮自行停用duration时间。只需确保记住您的setTimeouts

关闭操作的方式

答案 2 :(得分:0)

您的代码包含错误...您的行应

setTimeout(function(){clickRun(event)},5000);

但即便如此,我也不认为这正是你所寻找的;该代码将“延迟”点击5秒,实际上不会阻止更多点击。如果你的真实意图是在一段时间后忽略所有点击,那么我会选择mowwalker的回答;没有办法阻止点击,但你可以查看是否应该尊重他们。