单击时将addClass添加到图像。如果单击其他图像,请删除该类并将其添加到新图像

时间:2011-10-24 11:01:09

标签: jquery html css image

我有一个包含四张图片的列表。每个图像在任何给定时间应该只有一个活动类。 (类似于单选按钮)。

到目前为止我的代码支持这个罚款: http://jsfiddle.net/tctc91/HyHgp/

var themeChooser = $('.themeChooser ul li img');
themeChooser.click(function() {
    if(!themeChooser.hasClass('themeSelected')) {
        $(this).addClass('themeSelected');        
    } else {
        $(this).removeClass('themeSelected');
    }
});

我的问题是,当.themeSelected类已经处于活动状态时,如果单击其他图像,它将无法工作。我需要它,因此如果它已经处于活动状态并且您单击其他图像,它将删除现有的类并将其添加到新图像。

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的点击处理程序中添加$('.themeSelected').removeClass('themeSelected');可以实现您想要的效果。

实例:http://jsfiddle.net/sT9jE/


编辑:不是那么简单,上面会停止重新点击所选元素取消选择。因此,您实际上需要这样的添加:

if(!$(this).hasClass('themeSelected'))
    $('.themeSelected').removeClass('themeSelected');

请参阅此实例:http://jsfiddle.net/HM5DF/