javascript - 如何再一次点击按钮OK键,让弹出层消失?

查看:75
本文介绍了javascript - 如何再一次点击按钮OK键,让弹出层消失?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何再一次点击按钮OK键,让弹出层消失?

<!DOCTYPE html>
<html lang="en">
<head>
    <title>弹出层2</title>
    <meta charset="utf-8">
    <link rel="stylesheet"  href="Alert2.css">
    <script type="text/javascript">
        function show() {
            var contentObj = document.createElement("div");
            contentObj.setAttribute("class","content");

            
            //设定contentobj 的 innerHTML
            var html = '<div class="first">';
            html += '<div class="second">接下来就是见证奇迹的时刻!</div>';
            html += '<div class="third">';
            html += '<input type="button" value="OK" onclick="ok()">';
            html += '<input type="button" value="NO" onclick="no()">';
            html += '</div>';
            html += '</div>';

            contentObj.innerHTML = html;

            document.body.appendChild(contentObj);
            contentObj.style.display ="block";
      }
          function ok() {
         var content = document.getElementsByClassName('content')[0].style;
              content.display = "none";
             
              var i=0;
              var changeColor = function (node) {
                node.style.backgroundColor = "#99" + i.toString(16);
                if(i<16){
                   i++;
                   setTimeout(function () {changeColor(node)},200)
                
                }
                // else{
                   // i=0;
                   // setTimeout(function () {changeColor(node)},400)
                // }
        };        
        changeColor(document.body);     
     }
    
       function no() {
            var content = document.getElementsByClassName('content')[0].style;
                 content.display = "none";
                 
       }

    </script>    
    
</head>
<body>
<input type="button" value="start" onclick="show()">
</body>
</html>

接下来是css代码

body{
            /*background-color:#cccc00;*/
            background-color: #99FF00;
            margin: 0;
            padding: 0;
        }
       .content{
      
           display: none;
       
       }
        .first{
            width: 350px;
            height: 200px;
            /*margin-top: 60px;*/
            margin: 0 auto;
            background-color: cyan;
            border:4px solid purple;
            text-align: center;    
        }
        .second{
            font-size: 24px;
            margin-top: 50px;
            color: red;
        }
        .third{
            margin-top: 50px;

        }
        .third > input{
            margin-left: 20px;
        }

解决方案

var contentObj = document.createElement("div");
///////////////////////////
var content = document.getElementsByClassName('content')[0].style;
             content.display = "none";

改为

contentObj = document.createElement("div");
////////////////// 
contentObj.style.display = "none";

也就说将:获取contentObj的方式

  1. contentObj上升为全局变量

  2. 通过Dom操作获取content

  3. 通过函数参数,传递点击的事件(事件中有触发事件的对象input)

通过上述其中的一个方法可解决上述的问题.

这篇关于javascript - 如何再一次点击按钮OK键,让弹出层消失?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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