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。您需要添加一个$before slider: $($slider)。修复此问题后,您可以简单地使用 jQuery 的addClass()方法:

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

jQuery 还有一个removeClass()删除类的方法,因此在将新幻灯片设置为“当前”之前,您可能需要调用:

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

使用addClass()添加类属性

$(slider).addClass("current");
于 2013-11-04T09:07:05.513 回答
1

以下是您的代码中的实际错误。

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

或者简单地使用addClass()方法

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

检查在 jquery 中使用 attr() over addClass 的好处

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 回答