Javascript 在按下按钮后添加定时延迟以防止按钮垃圾邮件

Javascript 在按下按钮后添加定时延迟以防止按钮垃圾邮件,javascript,html,css,button,Javascript,Html,Css,Button,假设我有4个按钮 <button id="one">One</button> <button id="two">Two</button> <button id="three">Three</button> <button id="four">Four</button> 1 两个 三 四 为了防止垃圾邮件,我想这样做,无论何时按下任何按钮,在接下来的0.6秒内都不能再

假设我有4个按钮

    <button id="one">One</button>
    <button id="two">Two</button>
    <button id="three">Three</button>
    <button id="four">Four</button>
1
两个
三
四
为了防止垃圾邮件,我想这样做,无论何时按下任何按钮,在接下来的0.6秒内都不能再次按下任何按钮

我怎样才能做到这一点

// Get button elements
var els = document.getElementByTagName('button');

// Add an event handler to click event
// that triggers settimeout to set the disable value
els.addListener('click', function(){
  setTimeout(els.disable, 600);
}, true);

未测试

您可以使用以下javascript代码:

var btns = document.getElementsByTagName('button');
for(var i=0;i<btns.length;i++){
    btns[i].addEventListener('click', function(){
        disableButtons(true);
        setTimeout(function(){disableButtons(false);}, 600);
    });    
}
function disableButtons(state){
    for(var i=0;i<btns.length;i++){
        btns[i].disabled = !!state;    
    }
}
var btns=document.getElementsByTagName('button');

对于(var i=0;i,就像Prasadmanayake在他的评论中说的,你可以通过禁用/启用按钮来实现

以下是一个工作示例:

var intVal=0;
$('button')。在('click')上,函数(e){
var id=$(this.attr('id');
$('#'+id).attr('disabled','disabled');
setTimeout(函数(){enable(id)},3000);
返回true;
});
功能启用(id){
$('#'+id).removeAttr('disabled');
}

一个
两个
三

四种
一种方法是使用“点击屏蔽”

下面是使用jQuery的方法

var clickShield = false;
$('button').on('click', function() {
  if (!clickShield) {
    clickShield = true;
    console.log('handle click event');
    setTimeout(function() {
      clickShield = false;
    }, 600);
  }
});

使用jQuery,您可以执行以下操作:

<button id="one">One</button>
<button id="two">Two</button>
<button id="three">Three</button>
<button id="four">Four</button>

$("button").on("click", function(e) {
    $("button").attr('disabled', 'disabled');
    setTimeout(function() {
        $("button").removeAttr('disabled');
    }, 600);
});
1
两个
三
四
$(“按钮”)。在(“单击”)上,函数(e){
$(“按钮”).attr('disabled','disabled');
setTimeout(函数(){
$(“按钮”).removeAttr('disabled');
}, 600);
});

您应该在单击时禁用按钮,并在特定超时时重新启用它们。使用javascript setTimeout()函数就是一些例子