永发信息网

JS树形伸展收缩菜单

答案:2  悬赏:20  手机版
解决时间 2021-01-04 09:44
  • 提问者网友:喧嚣尘世
  • 2021-01-03 10:51
希望有朋友能帮忙提供一个树形伸展收缩菜单

效果跟这样的就可以http://www.zzsky.cn/effect/content/1550.htm
但是需要可以默认展开一个,而默认展开的这个可以指定。
谢谢!在线等!

兄弟,是有问题的啊,默认打开的是第2个,这时你点第1或第3个第2个不会收回去

我如何通过传递参数来确定哪一个是展开的呢?
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-01-07 06:23
var lastFaqClick=null;
var expandIndex = 1; //设置展开一个
window.onload=function(){
var faq=document.getElementById("faq");
var dls=faq.getElementsByTagName("dl");
for (var i=0,dl;dl=dls[i];i++){
var dt=dl.getElementsByTagName("dt")[0];//取得标题
dt.id = "faq_dt_"+(Math.random()*100);
dt.onclick=function(){
var p=this.parentNode;//取得父节点
if (lastFaqClick!=null&&lastFaqClick.id!=this.id){
var dds=lastFaqClick.parentNode.getElementsByTagName("dd");
for (var i=0,dd;dd=dds[i];i++)
dd.style.display='none';
}
lastFaqClick=this;
var dds=p.getElementsByTagName("dd");//取得对应子节点,也就是说明部分
var tmpDisplay='none';
if (gs(dds[0],'display')=='none')
tmpDisplay='block';
for (var i=0;i<dds.length;i++)
dds[i].style.display=tmpDisplay;
}
if(i == expandIndex){
dt.onclick();
}
}
}

//你是页面之间传递参数 还是你用脚本点击按钮等传递参数?
//页面传递的话你直接修改expandIndex值 如果用js修改expandIndex值你再重新调用这函数 也就是重新绑定点击事件 方法很多你随便想想就会有的
全部回答
  • 1楼网友:独行浪子会拥风
  • 2021-01-07 07:27
一般出现这种问题,有可能是代码写的不标准,比如一个json数据最后多了一个逗号,你可以先查查看,是否有不标准的地方,如果确认不是,那就删代码,然后一点一点的找。 请采纳答案,支持我一下。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯