2011-06-30 12 views
0

'this'以外のクラスのすべてのdivを選択するにはどうしたらいいですか?以下のコードは、 'この' 以外のすべてのものを選択します。jQuery - これまたは前または次ではない?

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

おかげ

UPDATE - ここに私の完全なコードです:

$(".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. 
      }); 

    }); 


}); 

すべてdiv.image-のdivの250ピクセルが広いから始めます。私はそれが必要なので、あなたがdivをクリックすると、それは500pxに拡大し、両側の隣人(div.image-divのもの)は125pxに縮小します。

もう一度divをクリックすると、divとその近隣のサイズが250pxにサイズ変更されます。また、別のdivをクリックすると、すべてのdiv(クリックされたdivとその隣人を除く)が250pxにサイズ変更されます。

おかげ

+0

私たちは、あなたが何をしようとして見ることができるように、あなたのHTMLを表示することができますか? –

+0

いくつかのコードを提供してください –

+0

私は必要に応じて行いますが、私は何が起こっているのか理解できるようにタスクを簡素化しました。 'this'、 'prev'と 'next'はjQueryのすべての標準セレクタであるため、一度に選択することはできませんか?ありがとう – Evans

答えて

0

私は自分の理解のためにそれを少し変更しましたが、あなたはそれを把握することができるはずです。それはうんざりですが、うまくいきます。

var divClicked = $(this); 

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

}); 
+0

あなたのコードは、ページ上のすべてのdivを選択しているようです。私はそれと一緒に遊んだが、私はそれを働かせることができない。 – Evans

+0

完全なコードを書くまで、私はあなたの質問を完全に理解していませんでした。私は「これ」の意味が何であるか不思議だった。しかし、今私はそれを得る。私の編集をチェックし、それが良いかどうかを確認してください。 – AndyL

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

そのように大丈夫です。ありがとう。 –

関連する問題