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

JS控制嵌入式CSS时添加了if条件无法运行的问题

JS控制嵌入式CSS时添加了if条件无法运行的问题

MR158 2016-01-31 16:50:14
<!DOCTYPE html> <html> <head>   <title></title>   <script type="text/javascript">   window.onload=function(){     var btn=document.getElementById("btn");     var div=document.getElementById("div");     var btn2=document.getElementById("btn2");      function addEvent(ele,type,hander){         if (ele.addEventListener) {           ele.addEventListener(type,hander,false);         }else if(ele.attachEvent){           ele.attachEvent(type,hander);         }else{           ele['on'+type]=hander;         };       }          addEvent(btn,'click',showMsg)     addEvent(btn2,'click',hideMsg)     function showMsg(){         if(div.style.display=="none"){           div.style.display="block";           }     }     function hideMsg(){         if(div.style.display=="block"){           div.style.display="none";           }     }  }        </script>   <style type="text/css">     #div{       width:300px;       height:300px;       background-color:skyblue;       display: none;     }   </style> </head> <body>     <button id="btn">click</button>          <div id="div"><button id="btn2">hide</button></div>      </body> </html>虽然这个if判断语句很多余吧,但突然发现了个问题1.把display属性用内联样式直接放到div里的话,效果可以运行。2.将hideMsg效果合并到showMsg里用else的话也可以运行。但用嵌入式CSS的时候,1的情况无法运行,2的情况在浏览器显示则是点击一下变成内联,再点击一下才有效果。为什么?
查看完整描述

2 回答

?
夫唯不争

TA贡献3条经验 获得超1个赞

window.onload=function(){
    var btn=document.getElementById("btn");
    var div=document.getElementById("div");
    var btn2=document.getElementById("btn2");
    var divStyle = div.currentStyle ? div.currentStyle : getComputedStyle(div,null); //获取元素当前的属性
    function addEvent(ele,type,hander){
        if (ele.addEventListener) {
            ele.addEventListener(type,hander,false);
        }else if(ele.attachEvent){
            ele.attachEvent(type,hander);
        }else{
            ele['on'+type]=hander;
        };
    }
    addEvent(btn,'click',showMsg);
    addEvent(btn2,'click',hideMsg);
    function showMsg(){
        if(divStyle.display=="none"){
            div.style.display="block";
        }
    }
    function hideMsg(){
        if(divStyle.display=="block"){
            div.style.display="none";
        }
    }
}


查看完整回答
1 反对 回复 2016-02-01
  • 2 回答
  • 0 关注
  • 2241 浏览
慕课专栏
更多

添加回答

举报

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