问答详情
源自:1-5 编程练习

不一样的效果

刚才看到不一样的效果,实现一下。

提问者:Groune 2015-05-12 15:16

个回答

  • 我萌别打我0_0
    2015-05-15 17:59:54
    已采纳

    我也遇到了这个问题,不知你解决没有?

    我发现原因是第一次点击时,CSS中display属性被设为none的ul元素,通过alert(uls[this.idex].style.display)方法显示的结果是空字符,只有第二次点击时才会显示none,这样就导致第一次点击时会执行else中的内容,结果看上去没有变化。我没有想通为什么第一次点击display属性没有值,不知道你现在是否知道原因?如果知道请分享下,谢谢。

    目前我的解决办法是将判断语句if(uls[this.idex].style.display == "none")改为if(uls[this.idex].style.display == 'none'||uls[this.idex].style.display == '')


  • Venfiw
    2015-06-01 10:44:35

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

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

                    }else {

                        for(var j=0;j<uls.length;j++){

                            uls[j].style.display="none";

                        }

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

                    }

  • Groune
    2015-05-12 15:20:28

    为什么第一次点击隐藏的列表没有反应,点第二次或者点显示的列表就没问题,本地测试时没有出现这种情况啊。