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() item 元素是否可用于 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

如果您只是想activeimg元素中删除类,您可以简单地将代码改为:

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

传递给该方法的函数的检查是多余的,因为 jQuery 无论如何都会在内部执行此操作。

为了帮助改进您使用的选择器,我需要查看您拥有的 HTML 代码。

于 2013-01-02T19:14:51.523 回答