J'ai le code suivant qui est utilisé pour contrôler une animation flip. Tout fonctionne bien avec un clic normal.Un double-clic rapide provoque le code à l'erreur
Cependant, il semble qu'un double-clic rapide provoque le passage de 2 événements à travers le contrôle booléen qui est censé empêcher ce problème. Dans Console.log, je m'attends à voir 'commencé à courir' pour le premier processus et 'déjà lancé' pour le second clic - au lieu de cela les deux clics semblent se terminer et causer des ravages avec la dernière logique.
Est-ce que quelqu'un voudrait me faire savoir ce que je fais mal et comment éviter ce problème?
Merci,
$('.item').each(function() {
var elem = $(this);
elem.data('running', false);
elem.bind("click",function(event){
event.preventDefault();
if (elem.data('running') == false) {
elem.data('running', true);
console.log('started running');
//do some stuff
elem.data('running', false);
} else {
console.log('already running');
}
})
});
Pourquoi ne faites-vous pas simplement '$ ('. Item'). Bind ('click', ...)'? Vous n'avez pas besoin d'une boucle horrible alors, et vous pouvez référencer l'élément cliqué avec '$ (this)' – Bojangles
Je voudrais pouvoir vous donner le point - Je me suis débarrassé du redondant chacun et maintenant tout semble bien. c'est bizarre que je ne puisse jamais «courir» pour apparaître dans la console, mais au moins maintenant les problèmes du clic rapide ne se produisent pas. merci beaucoup – rix
Pas un problème, et ne vous inquiétez pas pour le rep ': P' – Bojangles