48 votes

Comment appeler une action après click() dans Jquery ?

Je veux charger une image et d'autres actions après avoir cliqué sur un certain élément DOM, mais je veux les charger APRÈS la fin de l'action de clic.

Voici un exemple de code :

  $("#message_link").click(function(){
   if (some_conditions...){
       $("#header").append("<div><img alt=\"Loader\"src=\"/images/ajax-loader.gif\"  /></div>");
   }
 });

Le problème est que la condition if s'exécute avant la fin de l'action de clic (ou du moins c'est mon impression). J'ai besoin que la condition If s'exécute une fois l'action de clic terminée. Quelqu'un peut-il m'indiquer une solution s'il vous plait ?

Merci :)

53voto

Kevin Decker Points 450

setTimeout peut aider ici

 $("#message_link").click(function(){
   setTimeout(function() {
       if (some_conditions...){
           $("#header").append("<div><img alt=\"Loader\"src=\"/images/ajax-loader.gif\"  /></div>");
       }
   }, 100);
});

Cela entraînera l'ajout du div ~ 100 ms après l'événement de clic, si some_conditions sont remplies.

5voto

hrnsky Points 13

vous pouvez écrire des événements sur des éléments comme la chaîne,

 $(element).on('click',function(){
   //action on click
}).on('mouseup',function(){
   //action on mouseup (just before click event)
});

Je l'ai utilisé pour supprimer des articles du panier. même objet, faire une action, après une autre action

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X