Javascript如果其他嵌套

时间:2010-10-12 06:29:07

标签: javascript jquery if-statement

你好,这是我的代码:     var one = 0;     var 2 = 0;     var 3 = 0;     var free = 1;     function open(){

    if ($('#one').is(':visible')) {
        one = 1;
    }
    else {
        one = 0;
        free = 1;
    }

    if ($('#two').is(':visible')) {
        two = 1;
    }
    else {
        two = 0;
        if (one == 1) {
            free = 2;
        }
    }

    if ($('#three').is(':visible')) {
        three = 1;
    }

    else {
        three = 0;
        if (one == 1 && two == 1) {
            free = 3;
        }

    }
}

然后在HTML部分

<body onload="javascript:window.setInterval('open()', 1000)">

现在默认隐藏第一和第二层。现在的问题是,首先HTML输出(在第7层)是1(免费的值)。但一秒后它变为2.它不应该保持不变吗?这是因为所有图层在每个时间点都具有相同的可见性(隐藏)......

1 个答案:

答案 0 :(得分:0)

为每个图层提供一个类(例如'layers'),以便将它们全部收集起来。然后循环它们以找到第一个不可见并获得id。

var free = undefined;

$('.layers').each(function()
{
    if(!$(this).is(':visible'))
    {
        free = $(this).attr('id');
        break;
    }
});

if(free != undefined)
    alert('layer '+free+' is free');
else
    alert('there are no free layers');