2010-06-30 3 views
0

J'utilise galleriffic pour gérer ma galerie d'images et j'ai un problème avec les états actifs des vignettes.Comment ajouter dynamiquement un état actif avec jQuery à une miniature de la galerie

Galleriffic ne prend pas en charge les états actifs sur les images - uniquement les éléments de la liste. À l'heure actuelle, la galerie va assigner une classe "sélectionnée" au LI actuel contenant la vignette et j'ai essayé d'utiliser jQuery pour cibler l'ID de vignette dans l'LI actif, donc j'assigne un état actif à l'image, puis le renvoyer à l'état par défaut.

Essentiellement, je fais:

$('.selected img#myImage').attr('src', 'path_to_active_state.jpg'); 

Ce qui fonctionne, cependant, je ne peux pas obtenir l'image pour revenir à la valeur par défaut par la suite. Je ne pense pas qu'il existe un support jQuery pour utiliser hasClass dans une instruction if, mais si quelqu'un sait s'il vous plaît aider. Tout conseil est le bienvenu.

Répondre

0

Pourriez-vous essayer le sélecteur :not? Vous faites actuellement ceci pour obtenir l'image sélectionnée:

$('.selected img#myImage').attr('src', 'path_to_active_state.jpg'); 

Essayez de faire cela pour obtenir l'image non sélectionnée:

$(':not(.selected) img#myImage').attr('src', 'path_to_active_state.jpg'); 
0

Vous pouvez ajouter une classe à l'image active, afin que vous puissiez identifier plus tard ..

si

$('.selected img#myImage').attr('src', 'path_to_active_state.jpg').addClass('altered'); 

et lorsque vous sélectionnez une autre miniature

$('.altered').attr('src', 'path_to_inactive_state.jpg').removeClass('altered'); 

également dans votre exemple $('.selected img#myImage') semble impliquer que vous utilisez le même identifiant pour toutes les vignettes (#myImage). Id doit être unique dans le DOM ..

+0

Oui, j'ai attribué des ID uniques à toutes les images afin que je puisse les cibler différemment. J'espérais écrire quelque chose qui obtiendrait la source originale, la stocker dans une variable, assigner la nouvelle source de l'image active et la renvoyer à la source d'origine quand une autre vignette a été sélectionnée. Merci pour votre réponse. – Patrick

+0

@Patrick, vous devez créer une logique derrière les chemins actifs/non-actifs pour les vignettes .. de sorte que vous pouvez les rendre actifs/inactifs sans connaître l'état d'origine ou modifié .. (par exemple un ** certains -image.jpg ** pour le normal et ** some-image-active.jpg ** pour l'actif, et manipule le src pour ajouter/supprimer ce suffixe). Dans mon code, je vous montre comment ajouter une classe à la classe active afin que vous puissiez la retrouver plus tard et la renvoyer à l'image non active. –

Questions connexes