qq_梦里_0
2016-09-27 16:48
<script type="text/javascript"> window.onload=function(){ // 将所有点击的标题和要显示隐藏的列表取出来 var paras=document.getElementsByTagName("p"); var uls=document.getElementsByTagName("ul"); // 遍历所有要点击的标题且给它们添加索引及绑定事件 for(var i=0;i<paras.length;i++) { paras[i].id=i; paras[i].onclick=function(){ if(uls[this.id].style.display=="none") { uls[this.id].style.display="block"; } else { uls[this.id].style.display="none"; } } } } </script>
运行程序后首次点击后台脚本和前端框架时,需要点击两下才能展开ul列表,第二次点只需要点击一次就能展开列表,这是为什么?
页面刚打开时,第二个和第三个ul的display属性为undefined,所以刚开始总是执行else语句
if(uls[this.id].style.display=="block")
{
uls[this.id].style.display="none";
}
else
{
uls[this.id].style.display="block";
}
if(uls[this.id].style.display=="block")
{
uls[this.id].style.display="none";
}
else
{
uls[this.id].style.display="block";
}
点击事件换成这样就ok,你写的那样的话需要加非行间样式
Tab选项卡切换效果
65469 学习 · 533 问题
相似问题
回答 2
回答 1