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

addEvent(close,'click',hideLogin);这句里面为什么用close实现不了????

<!doctype html>

<html>

<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;display:none;}

     #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){//dom2级事件处理程序判断

            ele.addEventListener(type,hander,false);

        }else if(ele.attachEvent){//IE事件处理程序判断

            ele.attachEvent('on'+type,hander);

        }else{//DOM0级事件处理程序判

            ele['on'+type]=hander;

           }

       }

        // 显示登录层函数

        function showLogin(){

              login_box.style.display='block';

        }

        // 隐藏登录层函数

        function hideLogin(){

            login_box.style.display='none';

        }

      

        //点击登录按钮显示登录层

        // 执行代码

        addEvent(login_btn,'click',showLogin);//login_btn这个是怎么理解?

        //点击关闭按钮隐藏登录层

        // 执行代码

        addEvent(close,'click',hideLogin);

      }  

</script>

</head>

<body>

<div>亲,您好!<input type="button" value="登 录" id="login"></div>

<div id="login_box">

<p>用户登录</p><span id="close"></span>

</div>

</body>

</html>


正在回答

2 回答

因为时间冒泡了呀,你用close来hideLogin的同时冒泡到了 login_box来showLogin了,你对hideLogin函数里加一句阻止事件冒泡就可以解决这个问题了

0 回复 有任何疑惑可以回复我~
#1

qq_枫_ 提问者

谢谢,怎么添加呀?我添了怎么没用呢?
2016-12-07 回复 有任何疑惑可以回复我~
#2

飞向银河系 回复 qq_枫_ 提问者

你是怎么添加的?
2016-12-07 回复 有任何疑惑可以回复我~
#3

飞向银河系 回复 qq_枫_ 提问者

如果要兼容DOM和IE的话,应该做个判断,然后用if...else...来判断使用stopPropagation()或cancelBubble=true
2016-12-07 回复 有任何疑惑可以回复我~
#4

qq_枫_ 提问者

非常感谢!
2016-12-07 回复 有任何疑惑可以回复我~
查看1条回复

函数addEvent有三个参数(ele,type,hander),这里的login_btn是第一个参数,就是需要添加时间的元素

0 回复 有任何疑惑可以回复我~
#1

crystal_snow

添加事件
2016-12-06 回复 有任何疑惑可以回复我~
#2

飞向银河系

他的close就是获取的span元素~~~
2016-12-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

addEvent(close,'click',hideLogin);这句里面为什么用close实现不了????

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信