Disabilita più clic JavaScript

Sto provando a disabilitare più clic sull’elemento o impostare un ritardo tra ogni clic per impedire l’overloading del contenuto

Sto pensando di fare qualcosa del genere !!

var clicked = false; if(!clicked) { clicked = true; // do all my staff right here !! setTimeout(function(){ clicked = false; }, 3000); } 

ma non funziona? qualcuno può ottenere quello che sto cercando di fare ?? Grazie

Disabilita per fare clic sul pulsante per 30 secondi utilizzando setTimeout .

  $("#btnTest").click(function() { $(this).attr("disabled", true); setTimeout(function() { $('#btnTest').removeAttr("disabled"); }, 30000); }); 
   

puoi disabilitare l’elemento

 $(element).prop('disabled', true); 

dopo aver cliccato

Suppongo che la variabile click click su init sia triggersta, altrimenti se la condizione è sempre vera ad ogni clic.

Senza usare jQuery questo codice funziona:

 var clicked = false; function clickEvent() { if(!clicked) { clicked = true; console.log('clicked!!'); setTimeout(function(){ clicked = false; }, 3000); } } 
  

Questo non funzionerà perché la variabile cliccata è in ambito di funzione. Hai bisogno di chiudere per quello. Di seguito sarebbe utile se si desidera fare ciò tramite una variabile. È ansible impostare anche attributi di dati html5 per gestire lo stesso.

Lavorando qui JSFiddle

 window.onload = function() { initListener(); }; var initListener = function() { var clicked = false; document.getElementById('btn').addEventListener('click', function(event) { if (!clicked) { clicked = true; alert('Hi'); setTimeout(function() { clicked = false; }, 3000); } } ); }