2011-06-30 6 views
0

Comment puis-je sélectionner tous les div d'une classe sauf 'this', et aussi pas les divs suivant et précédent? Le code ci-dessous sélectionne tout sauf 'ceci':jQuery - Pas ceci ou prev ou suivant?

$(".image-div").not(this).each(function() { 
      $(this).animate({ 
        width: '250px' 
       }, 500, function() { 
       // Animation complete. 
      }); 
     } 
    }); 

Merci

MISE À JOUR - Voici mon code complet:

$(".image-div").click(function() { 


    if ($(this).css('width') != '500px') { 

     $(this).animate({ 
      width: '500px' 
      }, 500, function() { 
      // Animation complete. 
     }); 

     $(this).prev().animate({ 
      width: '125px' 
      }, 500, function() { 
      // Animation complete. 
     }); 

     $(this).next().animate({ 
      width: '125px' 
      }, 500, function() { 
      // Animation complete. 
     }); 


    } else { 
     $(this).animate({ 
      width: '250px' 
      }, 500, function() { 
      // Animation complete. 
     }); 
    } 


    $(".image-div").not(this).each(function() { 
      $(this).animate({ 
        width: '250px' 
       }, 500, function() { 
       // Animation complete. 
      }); 

    }); 


}); 

Toutes les div.image-div Commençons 250px de large. J'en ai besoin quand vous cliquez sur un div, il s'étend à 500px et ses voisins des deux côtés (aussi div.image-div) rétrécissent à 125px.

Lorsque vous cliquez à nouveau sur la div, elle et ses voisins redimensionnent à 250px. Aussi, si vous cliquez sur un autre div, tous les divs (sauf pour le cliqué sur div et ses voisins) redimensionner à 250px.

Merci

+0

Pouvez-vous montrer votre code HTML afin que nous puissions voir ce que vous essayez de faire? –

+0

oui. S'il vous plaît fournir un code s'il vous plaît –

+0

Je ferai si nécessaire, mais ive simplifié la tâche afin que je puisse comprendre ce qui se passe. Comme 'this', 'prev' et 'next' sont tous des sélecteurs standard dans jQuery, ne pouvez-vous pas tous les sélectionner (ou les exclure tous d'une sélection) en une fois? Merci – Evans

Répondre

0

je l'ai changé un peu pour ma propre compréhension, mais vous devriez être en mesure de comprendre. C'est bâclé, mais ça fonctionne.

var divClicked = $(this); 

$(".image-div").not(divClicked).not($(".image-div").next()).not($(".image-div").prev()).each(function() { 
     $(this).css({ 
      background: 'blue' 
     }); 

}); 
+0

Votre code semble sélectionner tous les divs sur la page. J'ai joué avec mais je ne peux pas le faire fonctionner. – Evans

+0

Je n'avais pas compris votre question complètement jusqu'à ce que vous ayez mis le code complet. Je me demandais quelle était la signification de «ceci». Mais maintenant je comprends. Vérifiez ma modification et voir si c'est mieux. – AndyL

1
$(".image-div").click(function() { 
      $(".imagediv").not($(this)).not($(this).next()).not($(this).prev()).animate({ 
        width: '+=250px' 
       }, 500); 
     }); 
+0

c'est donc ok. Merci . –

Questions connexes