2010-12-16 192 views
3

Comment tester si une image est le premier ou le dernier d'un groupe d'images?jQuery test pour si un div est le premier enfant?

Je suis en train de faire des boutons précédent et suivant Animer ou en fonction du fait que je suis à la fin d'une série d'images avec le code suivant:

var $current = jQuery("img .active"); 
var $next = $current.next(); 

if ($next != jQuery("img:first-child") 
{ 
// show next item and the previous button 
// seems to work? 

} else if ($next == jQuery("img:last-child") 
{ 
// hide the next button since we're at the end 
// doesn't seem to work?? 
} 
+0

Que fait le sélecteur d'identifiant '# img'? Y a-t-il un élément avec l'id 'img' contenant des images? Ou cela devrait-il être simplement «img»? Aussi, voulez-vous dire 'img.active', qui serait l'élément img avec la classe' active'? – theazureshadow

+0

Désolé c'était une faute de frappe, je l'ai juste corrigé. – redconservatory

Répondre

8

Vous voulez vérifier l'index du img:

var $current = jQuery("#img .active"), 
    index = $current.index(); 

if (index === 0) { 
    // This is the first 
} else if (index === jQuery("#img").children().length - 1) { 
    // This is the last 
} 
0

en supposant qu'aucun grand succès de la performance de l'utilisation .each() je ferais quelque chose comme ceci:

jQuery('#img').children().each(function(i,obj){ 
    // some code to show buttons 
    if (i <= 0) { // hide prev } 
    if (i >= $('#img').children().length - 1) { // hide next } 
}); 

Ensuite, masquer tous les $('#img').children() à l'exception de l'actif, ou de quelque manière que vous vouliez qu'il fonctionne.