点击关闭没有效果

来源:3-3 编程练习

ypc8272805

2016-07-22 19:26

我一开始以为是span标签不能添加click事件 换成input也不行

<!doctype html><html lang="en"><head>
   <meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding:0;}
    .head{font-size:12px;padding:6px 0 0 10px;}
    #login_box{width:300px;height:150px;background:#eee;     border:1px solid #ccc;position:absolute;left:50%;top:50%;margin-left:-150px;margin-top:-75px;}
    #login_box p{height:20px;border-bottom:1px solid #ccc;font-size:12px;padding:6px 0 0 5px;font-weight:bold;}
    #close{width:14px;height:14px;background:url(close.png) no-repeat;position:absolute;right:4px;top:6px;}
</style>
<script>
    window.onload = function () {
        var login_btn = document.getElementById('login'),
          login_box = document.getElementById('login_box'),
          close = document.getElementById('close');
        // 封装添加事件监听程序
        function addEvent(ele, type, hander) {
            // 执行代码
            if (ele.addEventListener) {
                ele.addEventListener(type, hander, false);
            }
            else if (ele.attachEvent) {
                ele.attachEvent('on' + type, hander);
            }
            else{
                ele['on'+type]=hander;
            }
        }
        // 显示登录层函数
        function showLogin() {
            // 执行代码

            login_box.style.display = 'block';
        }
        // 隐藏登录层函数
        function hideLogin() {
            // 执行代码
            login_box.style.display ='none';
        }
       
        //点击登录按钮显示登录层
        // 执行代码
        addEvent(login_btn, 'click', showLogin);
        hideLogin(close, 'click', hideLogin);
        //点击关闭按钮隐藏登录层
        // 执行代码
    }
</script></head><body>
<div class="head">亲,您好!<input type="button" value="登 录" id="login"></div>
<div id="login_box">
<p>用户登录</p><input type="button" value="x" id="close">
</div></body></html>

写回答 关注

3回答

  • DQJ俊逸
    2016-07-24 22:09:26

      hideLogin(close, 'click', hideLogin);这段代码错误 应该改成  addEvent(close, 'click', hideLogin);

    另外你的  #login_box样式应该开始就要把他隐藏 使用display:none

  • g0_f0r_it
    2016-07-23 18:25:44

    代码没错,鉴定完毕

  • 代小代
    2016-07-22 20:12:25

    addEvent(login_btn, 'click', showLogin);
            hideLogin(close, 'click', hideLogin);这两个要在window加载里面调用才行,不然,页面先执行这里,运行到内存中,发现addEvent()函数还没有定义,自然没有效果,加载不上

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题