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

给span添加的单击事件来控制ul的显示隐藏,效果只是一次性,第二次点击无效 ,为什么?

给span添加的单击事件来控制ul的显示隐藏,效果只是一次性,第二次点击无效 ,为什么?

艾狄生 2016-09-19 01:20:21
var span=document.querySelector("#menu .icon-th-list"); var ul=document.querySelector("#menu>ul.nav"); var ul_display=getComputedStyle(ul).display; span.addEventListener( 'click',  function(){ if(ul_display=="block"){ ul.style.display="none"; span.style.left="40px"; }else{ span.style.left="250px"; ul.style.display="block"; } } )
查看完整描述

1 回答

已采纳
?
stone310

TA贡献361条经验 获得超191个赞

因为var ul_display = getComputedStyle(ul).display;

这句写在函数外相当于将ul最初的display状态存到变量,但后面都没改变它,所以ul_display这个值永远是ul最初的状态;

将这句话放到事件函数内,这样每次点击的时候都会重新获取最新的值

查看完整回答
反对 回复 2016-09-19
  • 1 回答
  • 0 关注
  • 1898 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信