2011-09-01 35 views
0

我很驚訝我找不到類似的問題。我有一個圖標元素,當我點擊選項卡部分時需要更改。有6個部分。我有工作要添加一個類,正確使用刪除類,所以它不會不斷添加類上課。我只是無法做到。具有多個循環形式的類的JQuery switchClass

這裏是我的代碼:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.changeImage').click(function() 
{var rel = $(this).attr('rel'); 
$('.image').addClass("image"+rel); 
$(this).siblings().removeClass("image"+rel); 
      return false; 
     }) 
}); 
</script> 

我也試過這樣:

$('.image').addClass("image"+rel); 
$(this).next().find('.image').removeClass("image"+rel); 

它也不管用。

HTML部分(不包括所有周圍代碼):  

<div><a href="#" class="changeImage" rel="1"><img class="thumb" src="images/image1_thumb.png" /></a></div> 

CSS例如:

.image1 { 
background:url(images/fast.png) no-repeat; 

} 

.image2 {background:url(images/peep.png) no-repeat; 
} 

是否有換出BG的圖像的更有效的方法? switchClass是一個選項嗎?

我很感激。


我有它設置的方式是,當你點擊鏈接到一個部分,它有相對確定的值,它被添加到類「形象」 + REL

因爲我有6個不同的鏈接,將與CSS類image1,image2,image3等coorespond,我想要一個普通的jquery語句,說添加被點擊的類,但刪除它或與下一個鏈接被點擊的類切換它。

我可以得到它添加多個類,只是沒有正確刪除舊的,而點擊其他鏈接時添加下一個。

回答

0

該行$('.image').addClass("image"+rel);正在尋找與類image,我沒有看到您的代碼段中的東西。

一般情況下,您可以通過更換新的一個現有的所有類:

$('selector').attr('class', '').addClass('newClass');

0

CSS應該是背景圖像

您可以使用toggleClass

$(document).ready(function(){ 
    $("a").click(function(e){ 
     e.preventDefault(); 
     $("div",this).toggleClass("img1"); 
    }   
    ); 
}); 

jsFiddle example