首页 新闻 搜索 专区 学院

脚本不会响应单击事件

0
[已解决问题] 解决于 2008-10-22 09:32

我用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";
    }
  }

itman020的主页 itman020 | 初学一级 | 园豆:0
提问于:2008-10-21 09:41
< >
分享
最佳答案
0

 将<div id="Condition">根据需要改为:

<div id="Condition" style="display:block"> 或

<div id="Condition" style="display:none">

小妮子 | 菜鸟二级 |园豆:410 | 2008-10-21 10:01
其他回答(3)
0

<div id="Condition" style="display:block"> <table><tr> <td style="width: 64px"></td></tr></table></div>

zjy | 园豆:3194 (老鸟四级) | 2008-10-21 11:14
0

楼上两个方法,或者只把判断修改一下:

    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,或者按我上面的办法把判断条件反一下,都可以,你试试就知道了

丁学 | 园豆:18530 (专家六级) | 2008-10-21 13:02
0

<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

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2008-10-21 13:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册