2012-02-21 189 views
1

我試圖做一個切換,當點擊與「openclose(j)」功能的對象時,兩個類之間切換。我試圖讓腳本只removeClass(「箭頭向下」),它工作正常,但它不會addClass(「向上箭頭」)。這實在是煩人應對:)切換功能Javascript

function openclose(j){ 
     if(jQuery('#div_'+j).hasClass("arrow-down")) { 
      jQuery('#div_'+j).removeClass("arrow-down").addClass("arrow-up"); 
     } 
     if (jQuery('#div_'+j).hasClass("arrow-up")) { 
      jQuery('#div_'+j).removeClass("arrow-up").addClass("arrow-down"); 
     } 

     jQuery('#collaps_'+j).toggle(
      function() { 

      } 
     ); 
    } 

任何幫助是非常讚賞,

問候, 馬蒂亞斯

+0

作爲一個側面說明,你應該考慮使用[toggleClass(http://api.jquery.com/toggleClass/) :) – soniiic 2012-02-21 12:06:48

回答

3

使用其他 if語句...

function openclose(j){ 
    if(jQuery('#div_'+j).hasClass("arrow-down")) { 
     jQuery('#div_'+j).removeClass("arrow-down").addClass("arrow-up"); 
    } 
    else if (jQuery('#div_'+j).hasClass("arrow-up")) { 
     jQuery('#div_'+j).removeClass("arrow-up").addClass("arrow-down"); 
    } 

    jQuery('#collaps_'+j).toggle(
     function() { 

     } 
    ); 
} 

問題在於,您在添加它後立即刪除「向上箭頭」類!

或者,您可以考慮使用toggleClass JQuery函數。

+0

jQuery有一個'toggleClass()'函數。 – 2012-02-21 12:05:56

1

爲什麼不使用.toggleClass()

jQuery('#div_'+j).toggleClass("arrow-down").toggleClass("arrow-up"); 
6

你可以使用toggleClass()這確實您所需要的:

function openclose(j){ 
    jQuery('#div_'+j).toggleClass("arrow-down").toggleClass("arrow-up"); 
} 
+0

太棒了!這有助於完美! – 2012-02-21 12:06:31

+0

@Mathias你應該接受答案。 – fuzz 2012-02-21 12:10:58