2011-07-28 8 views
0

に入れしようとしている3つの機能が機能しているしている。ここでは、私がここでスイッチケース

function blockLayer1(){ 
    $('#block1').click(function() { 
     $("#layer1").toggle(); 
    }); 
     } 

function blockLayer2(){ 
$('#block2').click(function() { 
    $("#layer2").toggle(); 
}); 
    } 

function blockLayer3(){ 
$('#block3').click(function() { 
    $("#layer3").toggle(); 
}); 
    } 

が動作していない場合です。

$("#block").click(function(evt) { 

switch ($("#layer_container").index(this)) { 
    case 0 : 
    $("#layer1").toggle(); 
    break; 
    case 1 : 
    $("#layer2").toggle(); 
    break; 
    case 2 : 
    $("#layer3").toggle(); 
    break; 

    } 
}); 
} 
+4

なぜ、多くの機能が必要ですか?スイッチと共通の機能は何ですか?あなたは7つの質問をしてNONEを受け入れました。なぜあなたの質問に答えるべきですか? – Shef

+1

申し訳ありませんがルールを読む必要があった...私はそれに乗るだろう...私に思い出させるために感謝します。 – Martin

答えて

1

私は、このAを抽象化しようとするだろうさらに1つの関数を作成してください:

function blockLayer(layerNum) { 
    $('#block' + layerNum).click(function() { 
     $("#layer" + layerNum).toggle(); 
    }); 
} 

1つの部分(数値)を除いて同じコード要素が繰り返されます&を簡略化する良いケースになります。

+0

なぜ要素ではなくnumを渡すのですか? – Shef

+0

私は、要素、具体的にどのようなOPが達成しようとしているの構造を理解するためのマークアップの詳細を参照する必要があります。現在疑問視されていることの額面で、これはどのように抽象化できるかです。 – barfoon