2011-09-09 4 views
0

Je veux seulementjQuery - un événement de clic pour faire des choses différentes

$('.div_rightColumn').fadeOut("fast"); 
$('.div_rightColumn').fadeIn("fast"); 

à courir le premier clic. Est-il possible de dire jQuery pour faire seulement que la première fois qu'il est cliqué et seulement courir:

$('.name_filter img').live("click", function() { 
     $('#contactMessage').fadeOut(); 
     $('.div_rightColumn').css({"margin" : "3px 0 0 0"}); 
}); 

le reste des clics? Ci-dessous est plein ... merci!

$('.name_filter img').live("click", function() { 
     $('#contactMessage').fadeOut(); 
     $('.div_rightColumn').fadeOut("fast"); 
     $('.div_rightColumn').fadeIn("fast"); 
     $('.div_rightColumn').css({"margin" : "3px 0 0 0"}); 
}); 
+1

Vous ne devriez jamais utiliser live(). Vivre rend les choses plus lentes, vous ne pouvez pas délier, et c'est seulement là pour des raisons d'héritage. Utilisez délégué à la place: http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-the-difference-between-live-and-delegate/ –

Répondre

1

Vous pouvez faire quelque chose comme:

var run = 0; 
$('.name_filter img').live("click", function() { 
     $('#contactMessage').fadeOut(); 
     if(run === 0){ 
      $('.div_rightColumn').fadeOut("fast").fadeIn("fast"); 
      run++; 
     } 
     $('.div_rightColumn').css({"margin" : "3px 0 0 0"}); 
}); 

En outre, comme je l'ai dit dans le commentaire ci-dessus, vous devriez vraiment, vraiment changer votre vie à un délégué comme:

$('.name_filter').delegate("img", "click", function() { 
    //code 
}); 
+0

merci Oscar c'est exactement ce dont j'avais besoin. – webwrks

0

Si vous voulez écouter un événement une seule fois, vous pouvez utiliser .one

http://api.jquery.com/one/

+0

Il répond à sa/sa question 50%. –

+0

Ouais, aussi, 'once()' est génial, mais je préfère utiliser des variables au cas où, pour une raison ou pour une autre, vous voudriez le réinitialiser dynamiquement. Si vous utilisez une fois, vous devrez recréer l'élément. –

Questions connexes