javascript - 请问为什么我点击两次才能弹出第二个div框?

查看:108
本文介绍了javascript - 请问为什么我点击两次才能弹出第二个div框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #y{
            width: 100px;
            height: 100px;
            background: red;
        }
        #e{
            width: 300px;
            height: 300px;
            background: gray;
            display: none;
        }
    </style>

    <script>
        window.onload=function(){
            var oY = document.getElementById('y');
            var oE = document.getElementById('e');
            oY.onclick=function(){
                if(oE.style.display=="none"){
                    oE.style.display="block";
                }
                else{
                    oE.style.display="none";
                }
            }
        }
    </script>
</head>
<body>
    <div id="y"></div>
    <div id="e"></div>

</body>
</html>

发现写在内联样式里面就能点击一次就有效。写在上面就第一次就要点击两次, 然后或者把none和block换一下,第一次就有效。这是为什么请问。

解决方案

因为你判断语句oE.style.display=="none"判断的是行内样式。第一次点击的时候,行内样式找不到display。所以执行了

else{
                    oE.style.display="none";
                }

在行内添加了display="none",这样下次点击的时候就找到了display="none",才执行

 if(oE.style.display=="none"){
                    oE.style.display="block";
                }

采用下面 樊思雨 的方法比较好,或者用jq的 toggle

这篇关于javascript - 请问为什么我点击两次才能弹出第二个div框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆