2011-10-18 7 views
3

だから、私はこのマークアップとシンプルなスライドショーコントロール構築しています:jQueryの.first()と.last()の動作は異なりますか?

<div class="previous"> </div> 
<div class="next"> </div> 
<div class="gallery"> </div> 
    <div class="image-0"> </div> 
    <div class="image-1"> </div> 
    <div class="image-2"> </div> 
    <div class="image-3 active"> </div> 
    <div class="image-8"> </div> 
    <div class="image-9"> </div> 
    <div class="image-10"> </div> 
    <div class="image-11"> </div> 
</div> 

をし、私はこのようにjQueryを使用してナビゲートしようとしている:

$('.next').click(function() { 

    $('.active').next().addClass('active'); 
    $('.active').first().removeClass('active'); 


    }); 
$('.previous').click(function() { 

    $('.active').prev().addClass('active'); 
    $('.active').last().removeClass('active'); 

}); 

ので、最初のjQueryのブロック工事など最初にactiveクラスを次のdivに割り当ててから最初のdivから削除します。 2番目のブロックはそれ以外の方法で行う必要がありますが、前のクラスに追加した後に最後のアイテムからクラスを削除しません。

私は間違った側からこの問題に近づいていますか?または、first()とlast()関数は別の方法で動作しますか? jqueryのドキュメントからわかるように、これはうまくいくはずです。

+0

http://jsfiddle.net/K5vN4/

http://jsfiddle.net/GYbRv/ –

+1

コードに境界バグがありますが、コードはうまく動作します。http://jsfiddle.net/6vWx6/ –

+0

ありがとう、liho1eyeとamit_g。しかし境界バグとは何ですか? – moraleida

答えて

3

私はあなたのコードでjsfiddleを作成し、それが正常に動作します:期待どおりのコードは私のために働いている(フィドルの「結果」の領域を検査するFirebugのまたは類似を使用しています。)

+1

それはjsfiddleで動作します(ちょうどそれについて知りました、本当にクール!)ので、私の問題は他の場所です。ありがとう! – moraleida

関連する問題