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

不一样的效果

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

正在回答

3 回答

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

我发现原因是第一次点击时,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 == '')


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

Groune 提问者

正解!~
2015-05-15 回复 有任何疑惑可以回复我~
#2

Groune 提问者

是因为第一次点击时只有第一个的上面有这个属性,等第二次点击时所有的标签都被写上了display属性。你给的答案就是这个BUG的解决方案。
2015-05-15 回复 有任何疑惑可以回复我~
#3

东风破 回复 Groune 提问者

为啥第一次点击时候只有第一个有这个属性,不是在css中都设置了这个display这个属性了吗
2015-09-07 回复 有任何疑惑可以回复我~

                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";

                }

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

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

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

Groune 提问者

刚刚又仔细看了一下,本地也出现这种情况了,这是为什么?
2015-05-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

不一样的效果

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