我试图将用户单击对象的能力限制为一定的时间限制。我环顾四周,发现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;
}