我用javascript实现单击时隐藏一个层(div),
但在第一次加载页面中,第一次脚本不响应,单击第二次时才会响应,
请问这是什么原因,怎么解决啊?
以下是页面(.aspx)的部分代码:
<table><tr>
<td style="background-color: #33ff66;" onclick="hidCondition()">检索条件</td>
</tr>
<tr><td>
<div id="Condition"><table><tr> <td style="width: 64px"></td></tr></table></div>
</td></tr></table>
function hidCondition()
{
if(document.getElementById("Condition").style.display=="block")
{
document.getElementById("Condition").style.display="none";
}
else
{
document.getElementById("Condition").style.display="block";
}
}
将<div id="Condition">根据需要改为:
<div id="Condition" style="display:block"> 或
<div id="Condition" style="display:none">
<div id="Condition" style="display:block"> <table><tr> <td style="width: 64px"></td></tr></table></div>
楼上两个方法,或者只把判断修改一下:
if(document.getElementById("Condition").style.display=="none")
{
document.getElementById("Condition").style.display="block";
}
else
{
document.getElementById("Condition").style.display="none";
}
}
呵呵,楼主没有明白问题所在
你第一次点击时,style.display并不等于block因为你没有设置这个属性,所以第一次点击不会执行让它变成none,而是变成了block,所以当第二次点的时候就“正常了”
你只需要明确定义一下那个div的display,或者按我上面的办法把判断条件反一下,都可以,你试试就知道了
<div id="Condition">的style属性是需要初始化的。因为你只是if - else,所以没找到问题。
如果你
if(document.getElementById("Condition").style.display=="none")
{}
else if(document.getElementById("Condition").style.display=="block")
{}
else{alert(document.getElementById("Condition").style.display);}
OK,就可以看到效果了,undefinded