我正在设计一个网站,并采用了一个简单的 javascript 脚本来在每个菜单标题下显示子链接。
菜单标题存储在一个列表中,每个标题都包含单独的超链接,并使用具有以下类的 CSS 文件显示:
.hidden {display: none;}
.unhidden {display: block;}
基于这个javascript函数:
function unhide(liID) {
var item = document.getElementById(liID);
if (item) {
item.className=(item.className=='hidden')?'unhidden':'hidden';
}
}
这是 HTML 文件的示例:
<a href="javascript:unhide('menu1');">First Menu</a>
<li id="menu1" class="hidden">
<ul class="subMenus">
<li>Sub menu 1 item 1</li>
<li>Sub menu 1 item 2</li>
<li>Sub menu 1 item 3</li>
<li>Sub menu 1 item 4</li>
</ul>
</li>
<a href="javascript:unhide('menu2');">Second Menu</a>
<li id="menu2" class="hidden">
<ul class="subMenus">
<li>Sub menu 2 item 1</li>
<li>Sub menu 2 item 2</li>
<li>Sub menu 2 item 3</li>
<li>Sub menu 2 item 4</li>
</ul>
</li>
该代码有效并且执行良好。但是按照它的编码方式,一旦打开菜单,必须再次单击它才能折叠它。否则,在打开 3 或 4 个菜单后,列表会变得非常长且拥挤。
我的问题是......,在打开一个新菜单以节省空间时,javascript 中关闭以前打开的菜单所需的代码是什么?
谢谢。