0

私はJqueryでiTunesスタイルのカバーフローに取り組んでいます。私はJqueryフレームワークをそれほど頻繁には使用しません。私はプラグインを使いたくありません、それらのほとんどは私が欲しいものに対してやり過ぎのようです。http://jsfiddle.net/zorikii/cL63y/

現在、img要素からアクティブタグを削除しようとしています。

$(".imgFrame img").removeClass(function(index, currentClass) {
    var removedClass;
    if ( currentClass === "active" ) {
        removedClass= "active";
    }
    return removedClass;
});

クラスは次のように宣言されます。

.imgFrame
.imgFrame > img
.imgFrame.active > img

編集:HTML:

<div class="imgFrame active">
    <img src="http://placehold.it/50x75"/>
</div>
<div class="imgFrame">
    <img src="http://placehold.it/50x75"/>
</div>

$(".imgFrame img")私は以前にそのようなJqueryオブジェクトを別のコンテキストで見たことがありますが、私が探しているものではないと感じています。

4

2 に答える 2

3

必要なのは$('.imgFrame').addClass('active');$('.imgFrame.active').removeClass('active');それらのクラスを追加および削除することだけです。ただし、next()アイテム要素がaddClassで使用可能かどうかを確認するなど、もう少し詳細な操作を行う場合は、次のように実行できます。

$('#btnNext').on('click', function() {
    var $curImg = $('.imgFrame.active'),
        $nextImg = $curImg.next();
    if ($nextImg.length) {
        $nextImg.addClass('active');
    } else {
        $('.imgFrame').first().addClass('active');
    }
    $curImg.removeClass('active');
});

これは、フィドルのコードを使用したjsFiddleの例です。

于 2013-01-02T19:35:39.810 に答える
2

active要素からクラスを削除することだけを考えている場合は、次のimgようにコードを記述できます。

$('.imgFrame img').removeClass('active');

メソッドに渡す関数のチェックインは、jQueryがとにかく内部的に行うため、冗長です。

使用しているセレクターを改善するために、使用しているHTMLコードを確認する必要があります。

于 2013-01-02T19:14:51.523 に答える