2017-04-13 7 views
0

こんにちは、ありがとうございました。非効率的なコードを美化する

私は非常にコーディングに新しいです、私はこのコードを考えるのにかなりの時間を費やしました。幸いにもそれは動作します:-)その機能は、多段階セクションのnav要素をアクティブに設定することです。これは非常に非効率的ですが、私はそれをより効率的にするためのスキルはまだありません。私を助けてくれますか?大変ありがとう、ありがとう!

$('#Step1').click(function(){ 
     $('#Step1').addClass('Step-item-active'); 
     $('#Step2').removeClass('Step-item-active'); 
     $('#Step3').removeClass('Step-item-active'); 
     $('#Step4').removeClass('Step-item-active'); 

    }); 
    $('#Step2').click(function(){ 
     $('#Step2').addClass('Step-item-active'); 
     $('#Step3').removeClass('Step-item-active'); 
     $('#Step4').removeClass('Step-item-active'); 
     $('#Step1').removeClass('Step-item-active'); 

    }); 
    $('#Step3').click(function(){ 
     $('#Step3').addClass('Step-item-active'); 
     $('#Step4').removeClass('Step-item-active'); 
     $('#Step1').removeClass('Step-item-active'); 
     $('#Step2').removeClass('Step-item-active'); 

    }); 
    $('#Step4').click(function(){ 
     $('#Step4').addClass('Step-item-active'); 
     $('#Step1').removeClass('Step-item-active'); 
     $('#Step2').removeClass('Step-item-active'); 
     $('#Step3').removeClass('Step-item-active'); 

    }); 
+0

代わりにidのクラスを使用します。その後、そのクラスのすべての要素に1つのハンドラ関数をバインドします。まず、その要素を現在の要素( '$(this) ')に追加する前に、そのクラスのすべての項目からクラスを削除してください。 – CBroe

答えて

2

あなたはすべて同じクラスを与えることができます。たとえば、class="step"です。

は、その後、あなたがそれらのすべてのために

$(".step").click(function(){ 
    // remove the class from all of them 
    $(".step").removeClass("Step-item-active") 
    // add the class to the clicked element 
    $(this).addClass("Step-item-active") 
}); 
+0

それは完璧に動作します!どうもありがとうございます! :-) – christian

0
代わりにidの

クラス、および4行のコードを動作しますクリック機能を追加することができます(IDは忘れてください)。

$('.Step').click(function() { 
 
    $('.Step-item-active').removeClass('Step-item-active'); 
 
    $(this).addClass('Step-item-active'); 
 
});
div { 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: blue; 
 
} 
 

 
.Step-item-active { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="Step"></div> 
 
<div class="Step"></div> 
 
<div class="Step"></div> 
 
<div class="Step"></div>

関連する問題