如何全部展开/关闭树菜单??(解决问题后再送100分)

challenge8 2003-09-08 05:02:21

<a href="#">全部展开</a>
<a href="#">全部关闭</a>
<br><br>


<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>

<img src="images/tree_first.gif" id="MEMU_01" class="outline" style="cursor:hand">

</td>
<td colspan="3"><a href="#A" onclick="MEMU_01.click();"> 主菜单</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_01d" style="display:none">
<tr><td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_plus.gif" id="MEMU_0104" class="outline" style="cursor:hand"></td>
<td colspan="2"><a href="#A" onclick="MEMU_0104.click();"> 我的电脑</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_0104d" style="display:none">
<tr>
<td>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘C</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘D</a></td>
</tr>
</table>

</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"><a href="#"> 网上邻居</a></td>
</tr>
</table>

</td>
</tr>
</table>

<script language="JavaScript">
var openedid;
var openedid_ft;
var flag=0,sflag=0;

function clickHandler()
{
var targetid,srcelement,targetelement;
var strbuf;
srcelement=window.event.srcElement;

//-------- 如果点击了展开或收缩按钮---------
if(srcelement.className=="outline")
{
targetid=srcelement.id+"d";
targetelement=document.all(targetid);
if (targetelement.style.display=="none")
{
targetelement.style.display='';
strbuf=srcelement.src;
if(strbuf.indexOf("plus.gif")>-1)
srcelement.src="images/tree_minus.gif";
else
srcelement.src="images/tree_minusl.gif";
}
else
{
targetelement.style.display="none";
strbuf=srcelement.src;
if(strbuf.indexOf("minus.gif")>-1)
srcelement.src="images/tree_first.gif";
else
srcelement.src="images/tree_first.gif";
}
}
}
document.onclick = clickHandler;

</script>

...全文
142 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
全息宇宙 2003-09-10
  • 打赏
  • 举报
回复
以下用递归法实现展开关闭菜单。
<a href="javascript:expandAll(document.getElementById('aaa'));">全部展开</a>
<a href="javascript:hidAll(document.getElementById('aaa'));">全部关闭</a>


<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>

<img src="images/tree_first.gif" id="MEMU_01" class="outline" style="cursor:hand">

</td>
<td colspan="3"><a href="#A" onclick="MEMU_01.click();" > 主菜单</a></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center" id=aaa>
<tr>
<td>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_01d" style="display:none">
<tr><td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_plus.gif" id="MEMU_0104" class="outline" style="cursor:hand"></td>
<td colspan="2"><a href="#A" onclick="MEMU_0104.click();"> 我的电脑</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_0104d" style="display:none">
<tr>
<td>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘C</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘D</a></td>
</tr>
</table>

</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"><a href="#"> 网上邻居</a></td>
</tr>
</table>

</td>
</tr>
</table>

<script language="JavaScript">
var obj = '';
var openedid;
var openedid_ft;
var flag=0,sflag=0;

function clickHandler()
{
var targetid,srcelement,targetelement;
var strbuf;
srcelement=window.event.srcElement;

//-------- 如果点击了展开或收缩按钮---------
if(srcelement.className=="outline")
{
targetid=srcelement.id+"d";
targetelement=document.all(targetid);
if (targetelement.style.display=="none")
{
targetelement.style.display='';
strbuf=srcelement.src;
if(strbuf.indexOf("plus.gif")>-1)
srcelement.src="images/tree_minus.gif";
else
srcelement.src="images/tree_minusl.gif";
}
else
{
targetelement.style.display="none";
strbuf=srcelement.src;
if(strbuf.indexOf("minus.gif")>-1)
srcelement.src="images/tree_first.gif";
else
srcelement.src="images/tree_first.gif";
}
}
}

function expandAll(entity)
{
for (var i=0; i <entity.childNodes.length; i++) {
if (entity.childNodes(i).tagName == "TABLE") {
entity.childNodes(i).style.display = '';
}
expandAll(entity.childNodes(i));
}
}
function hidAll(entity)
{
for (var i=0; i <entity.childNodes.length; i++) {
if (entity.childNodes(i).tagName == "TABLE") {
entity.childNodes(i).style.display = "none";
}
hidAll(entity.childNodes(i));
}
}

document.onclick = clickHandler;

</script>
liuruhong 2003-09-09
  • 打赏
  • 举报
回复
最好有打包好的代码,我们才可以帮你调试完了发送给你,这样的代码是很难调试的,网络上已经有很多tree的代码了
challenge8 2003-09-09
  • 打赏
  • 举报
回复
还是没有解决问题
challenge8 2003-09-09
  • 打赏
  • 举报
回复
请兄台根据我的代码来修改,不要随便就贴出一大段代码来嘛!
zhaoweiwei 2003-09-09
  • 打赏
  • 举报
回复
<html>
<head>
<title>
Menu Frame
</title>
<style type="text/css">
<!--
td {font-size: 8pt; font-family: Arial, Helvetica}
-->
</style>
</head>
<body>
<font style="font-size: 12pt; font-family: Arial, Helvetica">Kjavaer_______Studio</font>
<hr>
<font style="font-size: 8pt; font-family: Arial, Helvetica">
<a href="javascript:parent.change_all('open')"><img src="plus.gif" border="0"></a>打开所有 
<a href="javascript:parent.change_all('closed')"><img src="minus.gif" border="0"></a>关闭所有<p>
</font>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<a href="javascript:parent.toggle_state('0')">
<img src="minus.gif" border="0"></a><img src="open.gif">
</td>
<td>
个人空间
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="20" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('1')">
<img src="minus.gif" border="0"></a><img src="open.gif"></td>
<td>
Web程序开发
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="40" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('2')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
ASP
</td>
</tr>
</table>
</td>
</tr>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="40" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('7')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
JavaScript
</td>
</tr>
</table>
</td>
</tr>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="40" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('12')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
PHP
</td>
</tr>
</table>
</td>
</tr>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="40" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('17')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
JSP
</td>
</tr>
</table>
</td>
</tr>
</td>
</tr>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="20" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('22')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
数据库管理
</td>
</tr>
</table>
</td>
</tr>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<td>
<img src="invisible.gif" width="20" height="10">
</td>
<td valign="top">
<a href="javascript:parent.toggle_state('30')">
<img src="plus.gif" border="0"></a><img src="closed.gif"></td>
<td>
我的相册
</td>
</tr>
</table>
</td>
</tr>
</body>
</html>
challenge8 2003-09-09
  • 打赏
  • 举报
回复
救命啊!!!
challenge8 2003-09-09
  • 打赏
  • 举报
回复
我用了一个很笨的方法,先定义一个函数,使得每个子菜单做一次.click(),但是树菜单是动态生成的,每个用户角色的菜单都不相同啊,这样做显然行不通的:

function show_hidden()
{
MEMU_05.click();
MEMU_09.click();
MEMU_13.click();
MEMU_20.click();
MEMU_30.click();
MEMU_0104.click();
MEMU_0108.click();
MEMU_0524.click();
MEMU_0528.click();
................................
}



还有谁来帮忙啊!!!!


challenge8 2003-09-09
  • 打赏
  • 举报
回复
树菜单是动态生成的,菜单的id号是从数据库中取得的,如果我想使每个子菜单获得一个click()事件,如:
MEMU_05.click();
MEMU_09.click();
MEMU_13.click();
MEMU_20.click();
MEMU_30.click();..............................................................

这该怎么做啊,是不是要做一个循环,获得所有菜单的id号,然后赋给一个对象,再对这个对象.click()????



我的问题解决不了,请大家继续指点啊,拜托!!

fason 2003-09-08
  • 打赏
  • 举报
回复
http://fason.nease.net/
challenge8 2003-09-08
  • 打赏
  • 举报
回复
各位高人:

本菜单是动态生成的,可能有无限个级,菜单的id号(MEMU_01,MEMU_0104 ...)是数据库中取的,麻烦哦!
liuruhong 2003-09-08
  • 打赏
  • 举报
回复
一般采用递归的方式,这个你可以看看我得代码的实现
http://expert.csdn.net/Expert/TopicView1.asp?id=2210140
lions911 2003-09-08
  • 打赏
  • 举报
回复
我也碰到了这个问题,帮你顶!!
全息宇宙 2003-09-08
  • 打赏
  • 举报
回复
<a href="#" onclick=show(this) id=aaa>全部展开</a>
<br><br>


<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>

<img src="images/tree_first.gif" id="MEMU_01" class="outline" style="cursor:hand">

</td>
<td colspan="3"><a href="#A" onclick="MEMU_01.click();"> 主菜单</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_01d" style="display:none">
<tr><td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_plus.gif" id="MEMU_0104" class="outline" style="cursor:hand"></td>
<td colspan="2"><a href="#A" onclick="MEMU_0104.click();"> 我的电脑</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_0104d" style="display:none">
<tr>
<td>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘C</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘D</a></td>
</tr>
</table>

</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"><a href="#"> 网上邻居</a></td>
</tr>
</table>

</td>
</tr>
</table>

<script language="JavaScript">
function show(obj) {
MEMU_01.click();
MEMU_0104.click();
if (obj.innerHTML == "全部展开") {
obj.innerHTML = "全部关闭";
} else {
obj.innerHTML = "全部展开";
}
}


var openedid;
var openedid_ft;
var flag=0,sflag=0;

function clickHandler()
{
var targetid,srcelement,targetelement;
var strbuf;
srcelement=window.event.srcElement;

//-------- 如果点击了展开或收缩按钮---------
if(srcelement.className=="outline")
{
targetid=srcelement.id+"d";
targetelement=document.all(targetid);
if (targetelement.style.display=="none")
{
targetelement.style.display='';
strbuf=srcelement.src;
if(strbuf.indexOf("plus.gif")>-1)
srcelement.src="images/tree_minus.gif";
else
srcelement.src="images/tree_minusl.gif";
}
else
{
targetelement.style.display="none";
strbuf=srcelement.src;
if(strbuf.indexOf("minus.gif")>-1)
srcelement.src="images/tree_first.gif";
else
srcelement.src="images/tree_first.gif";
}
}
}
document.onclick = clickHandler;

</script>
fokker 2003-09-08
  • 打赏
  • 举报
回复
<a href="javascript:OpenAll();">全部展开</a>
<a href="javascript:CloseAll();">全部关闭</a>
<br><br>


<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>

<img src="images/tree_first.gif" id="MEMU_01" class="outline" style="cursor:hand">

</td>
<td colspan="3"><a href="#A" onclick="MEMU_01.click();"> 主菜单</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_01d" style="display:none">
<tr><td>
<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_plus.gif" id="MEMU_0104" class="outline" style="cursor:hand"></td>
<td colspan="2"><a href="#A" onclick="MEMU_0104.click();"> 我的电脑</a></td>
</tr>
</table>
<table class="small" border="0" cellspacing="0" cellpadding="0" id="MEMU_0104d" style="display:none">
<tr>
<td>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘C</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif"></td>
<td><img src="images/tree_line.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"> 磁盘D</a></td>
</tr>
</table>

</td>
</tr>
</table>

<table class="small" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/tree_transp.gif" border="0"></td>
<td><img src="images/tree_blank.gif"></td>
<td colspan="2"><a href="#"> 网上邻居</a></td>
</tr>
</table>

</td>
</tr>
</table>

<script language="JavaScript">
var openedid;
var openedid_ft;
var flag=0,sflag=0;

function clickHandler()
{
var targetid,srcelement,targetelement;
var strbuf;
srcelement=window.event.srcElement;

//-------- 如果点击了展开或收缩按钮---------
if(srcelement.className=="outline")
{
targetid=srcelement.id+"d";
targetelement=document.all(targetid);
if (targetelement.style.display=="none")
{
targetelement.style.display='';
strbuf=srcelement.src;
if(strbuf.indexOf("plus.gif")>-1)
srcelement.src="images/tree_minus.gif";
else
srcelement.src="images/tree_minusl.gif";
}
else
{
targetelement.style.display="none";
strbuf=srcelement.src;
if(strbuf.indexOf("minus.gif")>-1)
srcelement.src="images/tree_first.gif";
else
srcelement.src="images/tree_first.gif";
}
}
}
document.onclick = clickHandler;

function CloseAll(){
MEMU_01d.style.display="none";
}
function OpenAll(){
MEMU_01d.style.display="";
var objs=MEMU_01d.getElementsByTagName("TABLE");
for(var i=0;i<objs.length;i++){
objs[i].style.display="";
}

}
</script>
全息宇宙 2003-09-08
  • 打赏
  • 举报
回复
<a href="#" onclick=show()>全部展开</a>
<a href="#">全部关闭</a>


<script language="JavaScript">
function show() {
MEMU_01.click();
MEMU_0104.click();
}
</script>
freetaiger 2003-09-08
  • 打赏
  • 举报
回复
<div id="diva"><font onclick="go()" style="cursor:hand">aaa</font></div>
<div id="divb" style="display:none">bbb</div>
<script language="vbs">
sub go()
if document.divb.style.display = "none" then
document.divb.style.display = "block"
else
document.divb.style.display = "none"
end if
end sub
</script>
challenge8 2003-09-08
  • 打赏
  • 举报
回复
是不是都急着下班啊?谁肯回答愚的问题?

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧