2010-04-02 5 views
1

Existe-t-il un moyen de faire en sorte que jQuery utilise des objets dans une instruction conditionnelle en tant qu'objet dans une hiérarchie. Par exemple, je veux valider que quelque chose existe, puis lui dire de faire quelque chose en utilisant simplement ce sélecteur.Déclaration conditionnelle en tant que hiérarchie jQuery

Vous aimez cette

if ($(".tnImg").length) { 

// je dois déclarer dans quel but je vise ici pour obtenir ce travail

  $(this).animate({ 
      opacity: 0.5, 
      }, 200); 
    } 

Y at-il un moyen d'obtenir jQuery pour le faire? Je suppose que Theres pas un avantage énorme, mais je suis toujours curieux

Répondre

2

En jQuery, si rien ne se trouve, rien ne se passe, par exemple:

$(".tnImg").animate({ opacity: 0.5 }, 200); 

Ce ne sera pas l'erreur, si elle ne le fait pas trouver quelque chose avec class="tnImg" il ne fonctionnera tout simplement sur aucun élément. Ceci est l'un des fondamentaux qui rend jQuery si laconique :)

Si vous vouliez faire beaucoup avec l'objet, cela vous permettra de l'utiliser comme $(this) pour chacun:

$(".tnImg").each(function() { 
    //$(this) is the current class="tnImg" element, this code runs for each one 
    $(this).animate({ opacity: 0.5 }, 200); 
}); 
+0

ok donc dire que je vous peut utiliser chaque fonction plutôt que de découvrir si elle existe. et le code fonctionnera toujours. Ensuite, je peux utiliser la hiérarchie. Maintenant disons si j'ai plus de paramètres à la fonction animée plus plusieurs événements avec des animations différentes pour chaque événement. Si j'utilise chacune des fonctions, elle contournera le code à l'intérieur du rappel plutôt que d'exécuter le code même si l'élément n'est pas là. –

+0

@Jacob - Pouvez-vous poster un exemple de ce que vous * voulez * faire? Il est souvent plus facile d'illustrer comment faire un exemple :) Si vous appelez une animation, le rappel fonctionne pour ** chaque ** élément qui a été animé (ils s'animent tous individuellement). Si le sélecteur n'a trouvé aucun élément, alors aucun n'est animé et le rappel ne fonctionnerait même pas une seule fois, est-ce logique? –

+0

est parfaitement logique, merci beaucoup, vous êtes une aide géante. –

Questions connexes