2012-03-29 11 views
0

クラス「画像」を持つ複数のdivと、クラス「サムネイル」を持つ複数のdiv(両方ともユーザーの追加量に基づいて可変にすることができますが、常にサムネイルは画像を使用して生成されます)最初のイメージから来る最初の親指)私は隠されているすべての親指のdivを持っていますが、最初のものは、すでに使用して:hide/showにクラスを反復する

$('.image:not(:first)').hide(); 

私は第二の親指をクリックすると、サムネイルのクラスを反復処理し、それが第2の画像を表示し、他を非表示にしたいです、3番目のサムをクリックすると3番目の画像です。

jQueryでこれをどうやって行いますか?

+0

したい機能は、[カルーセル](http://www.agilecarousel.com/flavor_2.htm)に似ているように聞こえます。私は、いくつかのjqueryカルーセルプラグインを見ることをお勧めします。 – Danny

+0

私はカルーセルを望んでいますが、すべての動的コンテンツでは、それを説明するものを見つけるのは難しいです。 – Lukasz

答えて

1

2つをリンクする方法をいくつか作成する必要があります。この例では、要素のインデックスを使用します。その後、CSSクラスを使用して表示状態を切り替えることができます。

http://jsfiddle.net/ZCuYM/1/

$('.thumb').click(function() { 
    //switch active thumb 
    $('.thumb.active').removeClass('active'); 
    $(this).addClass('active'); 

    //switch active image 
    $('.image.active').removeClass('active'); 
    $('.image').eq($(this).index()).addClass('active'); 
});​ 
+0

これはあなたの例では明らかです。何らかの理由で私はそれをローカルで動作させることはできません。私はこれらの要素のいくつかを他の要素にネストしていますが、これはコードの動作に影響しますか?私は警告することができますので、jQueryは完璧に動作していますが、.click関数は動作していないようです。他の要素にちょうど.clickを試してみてもうまくいかないのですか? – Lukasz

+0

これは私がデバッグする方法です。まず、親指のクリック機能で警告を発する。それから私はこれらの質問を自分自身に尋ねるでしょう。クラス「親指」の要素がありますか?次に、「親指」をクリックすると、親指でクリックができなくなるようなものがありますか?たとえば、 'preventDefault()'または 'cancelBubble()'を持つ別のクリックハンドラです。次に、クリックイベントを盗む何かがありますか?たとえば、目に見えない要素です。あなたのサイトへのリンクを投稿することができますが、私は一見することができますが、interwebsを介してデバッグは楽しいです! – mrtsherman

+0

ああ。私はアラートを使用していましたが、すでに存在する.ready機能の外にあったために機能しませんでした。すべてはそれの中になければならないことを、愚かな私は理解していなかった。しかし今は完璧に動作します。余計な助けをいただきありがとうございました。 – Lukasz

0

あなたが他の人を隠しつつ、第2の親指をクリックして、第2の画像を表示したい場合は、以下のコードが実行する必要があります。この場合

<div class="image"></div> 
<div class="thumb"></div> 
<div class="image"></div> 
<div class="thumb"></div> 

$('.thumb').click(function() { 
    $('.image').hide(); 
    $(this).prev('.image').show(); 
}); 

あなたが.thumbをクリックすると、すべての.imageの要素があります現在クリックされている.thumbが表示される前の.imageが表示されます。要素をリアルタイムで追加する場合は、クリックイベントに.on()を使用することを検討することがあります。

関連する問題