2012-02-21 8 views
1

"openclose(j)"という関数でオブジェクトをクリックすると、2つのクラスを切り替えるトグルを作ろうとしています。私はスクリプトをremoveClass( "arrow-down")だけにしてみましたが、これはうまく動作しますが、addClass( "arrow-up")はありません。これは、すべてのヘルプははるかに高く評価される:)トグル関数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() { 

      } 
     ); 
    } 

に対処する本当に迷惑である、if文

よろしく、 マティアス

+0

注意点としては、[toggleClass](http://api.jquery.com/toggleClass/)を使用してになります:) – soniiic

答えて

3

が...

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()'関数があります。 –

1

なぜ使用しないでください.toggleClass()?あなたが必要と何がどのtoggleClass()を使用することができます

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

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

素晴らしい!これは完璧に助けます! –

+0

@マティアスあなたは答えを受け入れるべきです。 – fuzz