Jquery .addClass('myclass')然后选择'myclass'不工作

时间:2010-11-17 20:50:33

标签: jquery

我在“listingThumb”类中有几个div。

CSS:

.listingThumb{
height:50px;
width:50px;
overflow:hidden;
}

Html:

<div class="listingThumb"><img src="mypic.jpg"></div>

我希望用户能够点击该div并在我添加的另一个类中添加一个边框.addClass()

.selectedThumb{
border:1px #f00 solid;
}

使用此功能:

$('.listingThumb').live('click',
    function(){
        $(this).addClass('selectedThumb');
    }
);

一切都很好,花花公子。我的问题是,当用户点击另一个div时,我想要切换所选的div。所以,我对我的功能所做的是......

$('.listingThumb').live('click',
    function(){
        $('.listingThumb').removeClass('selectedThumb'); // <-- remove any instance of that class...
        $(this).addClass('selectedThumb');
    }
);

但是,我通过jquery添加'selectedThumb'的任何div都没有注册为拥有该类,因为它是动态添加的。

这是否有共同的解决方案?

由于 -J

4 个答案:

答案 0 :(得分:2)

如果您正在寻找'selectedThumb',为什么不搜索它?

$('.selectedThumb').removeClass('selectedThumb');

答案 1 :(得分:1)

你所提供的内容没有错......

请参阅此处了解jsfiddle link

的工作原理

答案 2 :(得分:0)

您可以尝试专门选择要删除的课程:

$('.listingThumb').live('click',
    function(){
        $('.selectedThumb').removeClass('selectedThumb'); 
        $(this).addClass('selectedThumb');
    }
);

虽然它确实不应该有所作为。如果您在通过listingThumb选择时遇到问题,我会先检查拼写/大小写。

答案 3 :(得分:0)

您的代码应该可以使用,但这样可以确保删除该类的所有元素:

$('.listingThumb').live('click',
    function(){
        $('.selectedThumb').removeClass('selectedThumb'); // <-- remove any instance of that class...
        $(this).addClass('selectedThumb');

    }
);