2011-10-24 22 views
0

我有一個包含四個圖像的列表。每個圖像在任何給定時間只能有一個活動類。 (類似於單選按鈕)。addClass單擊時圖像。如果另一個圖像被點擊,刪除該類並將其添加到新圖像

到目前爲止我的代碼支持此罰款: 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

在點擊處理程序中簡單添加$('.themeSelected').removeClass('themeSelected');可以實現您想要的功能。

活生生的例子:http://jsfiddle.net/sT9jE/


編輯:並非如此簡單,上面的停止所選元素取消選擇在重新點擊。因此,您真正需要這個加法:

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

請參見本活生生的例子:http://jsfiddle.net/HM5DF/

+0

作品一種享受。非常感謝! – tctc91

相關問題