J'ai déjà examiné des questions similaires, mais les réponses fournies impliquent des boutons et non des éléments div. Lorsque je clique sur l'élément div avec ID Voici mon Jsfiddle . P> Cliquez sur CODE>, le gestionnaire d'événements click est désactivé par
Unbind () code> et définit une minuterie pendant 2 secondes. Après 2 secondes, le gestionnaire d'événements clic doit être activé à nouveau par
Bind () code>. Le problème est que le gestionnaire d'événements de clic ne semble pas obtenir "rebond". Je suis ajouté au texte à un autre élément div pour vérifier si le gestionnaire d'événements clic est actif. P>
5 Réponses :
Lorsque vous redéfinissez la fonction la deuxième fois que vous liez un sous-ensemble de tout votre code - tout cela ne rendait-il pas à l'état, mais il ne contient aucun du code pour effectuer un délai d'attente une seconde fois. .
Aussi, vous aimerez la fonction J'ai corrigé votre code ici: .one () code>. p>
Essayez ceci:
$(document).ready(function(){ $('#click').click(function(){ $('#click').unbind('click'); $('#status').append("unbound "); setTimeout( function(){ $('#click').bind('click',function(){ }); $('#status').append("bound "); }, 2000 ); }); });
Si j'ai eu ce que vous demandiez correctement, cela devrait fonctionner: vérifier ici: https://jsfiddle.net/equne/ p> p>
Je réponds à votre question mais ne vous tuez pas :)) Vous plaisantez simplement ... Votre code est bien juste un typo: Settimeout code> devrait être
Settimeout code> (le O devrait être o) p>
Une autre approche de l'ensemble du problème est de ne pas vous soucier d'un libidage et de la reproduction et d'utiliser simplement un drapeau "désactivé":