你好,这是我的代码: 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.它不应该保持不变吗?这是因为所有图层在每个时间点都具有相同的可见性(隐藏)......
答案 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');