0

私はスライドショーに取り組んでいます。最後にcurrent、次のチェックのためにクラスを変数に追加したいと思います。

しかし、それはうまくいきません。私も試しattrましたが、うまくいきませんでした。

これは私のコードです:

    $(function () {
        $('.large_image').children('img').addClass('current');
        $('.product-item').click(function () {
            if ($('.large_image > img').hasClass('current')) {
                var $img = $(this).find('img').attr('data-img');
                var $slider = '<img class="dis-none" style="position:absulote;z-index:999" src=' + $img + ' />';
                $($slider).appendTo('.large_image').stop(true, true).delay(400).fadeIn(
                   function () {
                       $('.current').fadeOut(function () {
                           $(this).remove();

                       });
                   });
                $($slider).attr('class', 'current');
                $($slider).addClass('current');
            }
        })
    });

この問題を解決する方法について何か助けはありますか?

4

4 に答える 4

3

まず、変数名は$sliderではなくsliderです。$前にslider:を追加する必要があります$($slider)addClass()これを修正したら、jQuery のメソッドを簡単に使用できます。

$($slider).addClass('current');

jQuery にremoveClass()はクラスを削除するメソッドもあるため、新しいスライドを「現在」に設定する前に、次のように呼び出します。

$('.current').removeClass('current');
于 2013-11-04T09:06:58.047 に答える
1

以下は、コードの実際の間違いです。

$($slider).attr("class='current'"); //WRONG
$($slider).attr('class','current'); //RIGHT WAY

または単にaddClass()メソッドを使用する

$($slider).addClass('current');

jquery で addClass に対して attr() を使用するこの利点を確認してください

addClass()attr('class') でクラスを操作するよりもいくつかの利点があります。

  1. 意味的にはより明確です。
  2. 複数のクラスで動作します。
  3. それは明らかにはるかに高速です。
于 2013-11-04T09:08:33.857 に答える
1

クラスの追加とクラスの削除を使用する

$(slider).addClass('current').siblings().removeClass('current');

currentまた、他の要素クラスも削除します

于 2013-11-04T09:08:48.760 に答える
1

addClass()を使用してクラス属性を追加します

$(slider).addClass("current");
于 2013-11-04T09:07:05.513 に答える