我有三个功能,我试图把它放入一个Switch Case

时间:2011-07-28 16:40:20

标签: jquery

以下是功能:

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;

   }
 });
}

1 个答案:

答案 0 :(得分:1)

我会尝试进一步抽象这个并创建一个函数:

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

你有相同的代码元素重复,除了1个部分(数字),所以它是一个很好的案例抽象&简化。