为了账号安全,请及时绑定邮箱和手机立即绑定

有一个bug:运行程序后首次点击后台脚本和前端框架时,需要点击两下才能展开ul列表,第二次点只需要点击一次就能展开列表,这是为什么?

	<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列表,第二次点只需要点击一次就能展开列表,这是为什么?

正在回答

3 回答

页面刚打开时,第二个和第三个ul的display属性为undefined,所以刚开始总是执行else语句

if(uls[this.id].style.display=="block")

             { 

                 uls[this.id].style.display="none";

             }

              else

              {

                  uls[this.id].style.display="block";

              }


0 回复 有任何疑惑可以回复我~

 if(uls[this.id].style.display=="block")

             { 

                 uls[this.id].style.display="none";

             }

              else

              {

                  uls[this.id].style.display="block";

              }

点击事件换成这样就ok,你写的那样的话需要加非行间样式

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有一个bug:运行程序后首次点击后台脚本和前端框架时,需要点击两下才能展开ul列表,第二次点只需要点击一次就能展开列表,这是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信