Comment attendre jusqu’au clic dans la fonction?

Je suis en train de commencer à coder sur Javascript / jQuery et je suis coincé avec un problème. Longue histoire courte:

  1. J’ai un élément sur la page qui devrait ignorer les clics;
  2. Une fois que la fonction spécifique appelée, elle doit attendre que n clique;
  3. La fonction devrait alors exécuter du code;
  4. Après tout, l’élément doit à nouveau ignorer les clics.

J’ai essayé de jouer avec setInterval () / clearInterval () mais je n’ai pas réussi.

Aidez-moi, s’il vous plaît 🙂

PS: L’un des moyens consiste à recharger une page avec le nouveau code, mais ce n’est pas pour moi.

UPD:

var select = function() { /*once called this function should enable clicks on  toggling its class to yellow and once both cells are yellow clicking should be disabled*/ }; $(document).ready(function(){ $("button[name=start]").click(function(){ select(); }); }); 

http://jsfiddle.net/superiorbanana/Z53EU/ . J’espère que ce petit bout de code clarifiera l’idée.

Je pense que vous êtes à la recherche de méthodes d’ activation et de désactivation de jQuery.

Liez un gestionnaire de clics à on , puis off lorsque vous avez terminé. Ainsi, dans votre cas, vous pouvez désactiver un gestionnaire de clics immédiatement après son déclenchement. Par exemple:

 $(document).ready(function () { var $tds = $('td'), // store td's count = $tds.length; // store # of td's $("button[name=start]").on('click', function (e) { // pass `e` so that it can be used to turn itself off $(this).off(e); // this function won't execute again // bind td clicking after button's clicked $tds.on('click', function (e) { $(this).addClass('clicked').off(e); // executed once per td // the if statement and the count is actually // not necessary; it's just to demonstrate // that all the click handlers have ended. count--; // count - 1 if (count === 0) { console.log('there are no more click handlers'); } }); }); }); 

Ou simplement

 $(document).ready(function () { $("button[name=start]").on('click', function (e) { $(this).off(e); $('td').on('click', function (e) { $(this).addClass('clicked').off(e); }); }); }); 

Découvrez le code sur votre jsfiddle .

Stockez simplement le nombre de clics dans une variable et vérifiez-le avec javascript. Quelque chose comme ça:

 var x = 0; $('#button').click(function(){ x++; if (x == 5) { alert("hello"); } }); 

violon

Je ne sais pas si tu cherches ça,

HTML

 click disabled 
enable click

jquery

 var count=0; $(".two").click(function(){ $(".one").text("click enabled"); $(".one").click(function(){ count++; if(count==5) { $(".one").text("click disabled"); $(".one").off("click"); } alert("click enabled"); }); }); 

Démo de violon

Dans le code ci-dessus, l’événement click de la première étendue ne se déclenchera pas tant que l’utilisateur n’aura pas cliqué sur la seconde. L’événement de clic pour la première étendue est lié uniquement après avoir cliqué sur la deuxième étendue. Il y a aussi un compteur pour clic. Lorsque le compteur atteint la limite de clic, l’événement de la première étendue est supprimé à l’aide de off()

Vous devez définir l’écouteur d’événements au début pour écouter tout événement de clic sur cet élément.

Une fois que la fonction spécifique appelée, elle doit attendre que n clique;

Cette “fonction spécifique” peut définir une variable sur “true” qui était précédemment false. C’est ce que l’écouteur d’événements click attend. Une fois que la variable est vraie, une variable de compteur peut compter le nombre de clics.

n clics;

Une fois que le compteur a atteint le nombre de clics souhaité, vous pouvez exécuter ce que vous désirez:

 if(counter === n) { executeMe(); counter = 0; } 

Vous pouvez aussi utiliser “mod” si l’intervalle est toujours le même.