经典论坛's Archiver

cqlpxdx 发表于 2008-8-29 10:05

折叠菜单为什么要onclick两次才有效

奇怪的问题,希望得到解决。
[code]<tr>
      <td height="25" align="center" class="menu" onmouseover="this.className='menu_a';" onmouseout="this.className='menu';" onclick="showmenu(1,this)">企业信息</td>
    </tr>
    <tr>
      <td align="left" valign="bottom"><div id="menu1" class="closeitem">
          <ul>
            <li><a href="#" target="main">管理员管理</a></li>
            <li><a href="#" target="main">网站公告</a></li>
            <li><a href="#" target="main">网站配置</a></li>
            <li><a href="#" target="main">数据库备份</a></li>
            <li><a href="#" target="main">系统帮助</a></li>
            <li><a href="#" target="main">上传文件管理</a></li>
          </ul>
      </div></td>
    </tr>[/code]

JS代码:[code]function showmenu(sid,obj)
{
  var tid=document.getElementById("menu"+sid);
if(tid.style.display=="none")
   {
   tid.style.display="block";
   obj.style.backgroundImage="url(images/menudown.gif)";
   }
else
{          tid.style.display="none";
    obj.style.backgroundImage="url(images/menuup.gif)";
}
}[/code]

现在问题就是点击一次无效果,第二次才会展开。每个菜单项都是这样,点击过的就不存在这样的问题。只要一刷新页面,问题又出现。如果觉得需要打包,呆会我传上来。

buyu 发表于 2008-8-29 10:30

[code]
if(tid.style.display=="none")
[/code]

[code]
if(tid.style.display=="none" || !!!tid.style.display)
[/code]

thelucky 发表于 2008-8-29 10:38

[code]function showmenu(sid,obj)
{
  var tid=document.getElementById("menu"+sid);
if(tid.style.display=="none")
   {
   tid.style.display="block";
   obj.style.backgroundImage="url(images/menudown.gif)";
   }
else
{      tid.style.display="none";
    obj.style.backgroundImage="url(images/menuup.gif)";
}
}[/code]

把none和block倒过来就是你要的效果了

cqlpxdx 发表于 2008-8-29 11:19

回复 2# buyu 的帖子

谢谢,用2楼的解决了。3楼的不是太明白,逻辑上没有错误吧

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.