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

限制页面上的点击检测[javascript],javascript,jquery,click,settimeout,Javascript,Jquery,Click,Settimeout,我试图将用户单击对象的能力限制在一定的时间限制内。我环顾四周,发现setTimeout()显然是用于这类事情的正确函数。我已将该函数应用于我的代码,但它不起作用。我现在想/知道问题在于我代码中的setTimeout没有限制实际的点击事件,我需要这样做。以下是我的点击代码片段: function clickRun(event) { var $objectVersion = correspondingObject(event.target.id); if (isAnyVisible(

我试图将用户单击对象的能力限制在一定的时间限制内。我环顾四周,发现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);
});
我还创建了一个JSFIDLE来表示我所说的内容:


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

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

onClick = function(){
    if(new Date().getTime() - lastCheck < MIN_CLICK_SPACING) return;
}
onClick=function(){
if(new Date().getTime()-lastCheck
我认为最简单的方法是跟踪上一次单击的时间,如果当前单击时间过快,则不要执行任何操作:

onClick = function(){
    if(new Date().getTime() - lastCheck < MIN_CLICK_SPACING) return;
}
onClick=function(){
if(new Date().getTime()-lastCheck
我认为最简单的方法是跟踪上一次单击的时间,如果当前单击时间过快,则不要执行任何操作:

onClick = function(){
    if(new Date().getTime() - lastCheck < MIN_CLICK_SPACING) return;
}
onClick=function(){
if(new Date().getTime()-lastCheck
我认为最简单的方法是跟踪上一次单击的时间,如果当前单击时间过快,则不要执行任何操作:

onClick = function(){
    if(new Date().getTime() - lastCheck < MIN_CLICK_SPACING) return;
}
onClick=function(){
if(new Date().getTime()-lastCheck
您的代码包含错误。。。你的线路应该是

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

但即便如此,我也不认为这正是你想要的;该代码将“延迟”点击5秒,实际上不会阻止更多点击。如果你的真正意图是在一段时间后忽略所有点击,那么我会同意莫沃克的回答;无法停止单击,但您可以检查是否应遵守这些操作。

您的代码包含错误。。。你的线路应该是

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

但即便如此,我也不认为这正是你想要的;该代码将“延迟”点击5秒,实际上不会阻止更多点击。如果你的真正意图是在一段时间后忽略所有点击,那么我会同意莫沃克的回答;无法停止单击,但您可以检查是否应遵守这些操作。

您的代码包含错误。。。你的线路应该是

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

但即便如此,我也不认为这正是你想要的;该代码将“延迟”点击5秒,实际上不会阻止更多点击。如果你的真正意图是在一段时间后忽略所有点击,那么我会同意莫沃克的回答;无法停止单击,但您可以检查是否应遵守这些操作。

您的代码包含错误。。。你的线路应该是

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

但即便如此,我也不认为这正是你想要的;该代码将“延迟”点击5秒,实际上不会阻止更多点击。如果你的真正意图是在一段时间后忽略所有点击,那么我会同意莫沃克的回答;没有办法停止单击,但您可以检查是否应该遵守这些命令。

看看这个,我已经设置好了,这样您就可以在检测到单击后让按钮在时间
持续时间
内自动禁用。只需确保记住您的闭包在设置超时时是如何运行的,看看这个,我已经设置好了它,这样您就可以在检测到单击后让按钮在时间
持续时间
期间禁用自己。只需确保记住您的闭包在设置超时时是如何运行的,看看这个,我已经设置好了它,这样您就可以在检测到单击后让按钮在时间
持续时间
期间禁用自己。只需确保记住您的闭包在设置超时时是如何运行的,看看这个,我已经设置好了它,这样您就可以在检测到单击后让按钮在时间
持续时间
期间禁用自己。只需确保记住您的闭包是如何使用
设置超时的

就清楚了,您为什么要限制用户单击的能力?如果是出于娱乐目的,那么可以,但如果您试图将其实现为安全或权限功能,那么这不是您想要的。@hylianpowball不是安全或权限功能。我正在构建一个交互式表格,每个用户单击某个分区,即可展开/压缩元素。我现在遇到的问题是,如果用户在相隔约0.5秒的时间内单击两个单独的元素,两个分区会同时扩展,而在给定的时间内只有1个分区可用。请澄清,为什么您要限制用户的单击能力?如果是出于娱乐目的,那么可以,但如果您试图将其实现为安全或权限功能,那么这不是您想要的。@hylianpowball不是安全或权限功能。我正在构建一个交互式表格,每个用户单击某个分区,即可展开/压缩元素。我现在遇到的问题是,如果用户在相隔约0.5秒的时间内单击两个单独的元素,两个分区会同时扩展,而在给定的时间内只有1个分区可用。请澄清,为什么您要限制用户的单击能力?如果是出于娱乐目的,那么可以,但如果您试图将其实现为安全或权限功能,那么这不是您想要的。@hylianpowball不是安全或权限功能。我正在构建一个交互式表格,每个用户单击某个分区,即可展开/压缩元素。我的问题是哈