2012-03-02 6 views
0

2つのdiv(.cardと.slotと呼ばれる)を含む順序付けられていないリストがあります。.cardアニメーションを1つずつ作成したいと思います(つまり、最初の.cardをクリックするとアニメーション化されます次の '.card'をクリックすると、最初の背を元の高さに戻します。アイデアは1つの '.card'だけが高さに設定されます。クラス名に応じて要素をアニメ化する

私は現在クリックされた( '.cards')から削除され、 '.cards'のリストをたどって現在のクリックをアニメートし、他のものをリセットします。

しかし、私は問題があります。もし誰かが私を右の方向に向けることができれば私はそれを感謝します。ここ

は、コード例です

http://pastebin.com/XsswqCsU

ありがとうございます!

無料マイクタイソン!

+0

私は私の例ではスクリプトタグを開くのを忘れてしまった。テストするときにその人をそこに追加する必要があります。返信いただきありがとうございます。 – coreyl

答えて

0

私は完全にカードとスロットの使用を理解していないが、あなたは(あなたの特定のHTMLに適合させることができる)、一般的にこのようなコードを使用することができます:

<ul> 
<li><div class="card">Card 1</div><div class="slot"></div></li> 
<li><div class="card">Card 2</div><div class="slot"></div></li> 
<li><div class="card">Card 3</div><div class="slot"></div></li> 
<li><div class="card">Card 4</div><div class="slot"></div></li> 
</ul>​ 

$(".card").click(function() { 
    var this$ = $(this); 
    var slot$ = this$.closest("li").find(".slot"); 
    if (!slot$.hasClass("expanded")) { 
     this$.closest("ul").find(".expanded") 
      .removeClass("expanded") 
      .animate({height: "20px"}); 
     slot$.addClass("expanded").animate({height: "200px"}); 
    } 
});​ 

が行動でそれをここで参照してください。 :http://jsfiddle.net/jfriend00/Bc73Y/

+0

私はあなたの解決策を見ています。ここに私のコードが動作しています。 http://jsfiddle.net/KfGNN/3/、カード(白いボックス)をクリックすると効果が表示されます。私の問題は、フォーカスされたボックスをクリックイベントでアニメーション化し、残りを初期の位置にリセットすることだけです。 – coreyl

+0

'$ $ this = $(this)'で始めるには、あなたが持っている場所ではなく、クリックハンドラ関数の中になければなりません。 – jfriend00

関連する問題