2012-02-21 95 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