供大家讨论,可以带自定义参数的事件处理程序

来源:3-3 编程练习

Rhinel

2015-06-10 23:53

<!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:#000;position:absolute;right:4px;top:6px;}
</style>
</head>
<body>
<div>亲,您好!<input type="button" value="登 录" id="login"></div>
<div id="login_box">
<p>用户登录</p><span id="close" onclick="hideLogin(event,login_box)"></span>
</div>
    <script>
    var login_btn=document.getElementById('login'),
    login_box=document.getElementById('login_box'),
    close=document.getElementById('close');
    window.onload=function(){
          // 封装添加事件监听程序
        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;
           }
          };
        //点击登录按钮显示登录层
        // 执行代码
        addEvent(login_btn,'click',showLogin);
        //点击关闭按钮隐藏登录层
        // 执行代码
        //addEvent(login_btn,'click',hideLogin(event,login_box));
        //close.onclick=hideLogin(event,login_box);
        //上面两种方式相等,等同于直接调用
    };
    // 显示登录层函数
    function showLogin(){
       // 执行代码
        login_box.style.display="block";
    };
    // 隐藏登录层函数
    function hideLogin(e,ele){
        // 执行代码
        ele.style.display="none";
        //alert(ele);
    };
</script>
</body>
</html>


写回答 关注

1回答

  • Shadow_Walker
    2015-12-22 12:59:21

    不错哟

DOM事件探秘

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

99532 学习 · 1305 问题

查看课程

相似问题