作为参数的函数里面能再传递参数吗,隐藏显示的函数里面我传了个参数,为啥不能这样写

来源:3-3 编程练习

慕婉清4886767

2016-07-11 18:16

<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);

            }

           // 执行代码  

      }

        // 显示登录层函数

      function showLogin(ele){

              ele.style.display="block";

      // 执行代码

        }

        // 隐藏登录层函数

        function hideLogin(ele){

            ele.style.display="none";

          // 执行代码

        }

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

        addEvent(login_btn,"click",showLogin(login_box));

        // 执行代码

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

        addEvent(close,"click",hideLogin(login_box));

        // 执行代码

      }

</script>


写回答 关注

1回答

  • NemoOTZ_03565218
    2016-07-11 22:30:13
    已采纳
         window.onload=function(){
    
          var login_btn=document.getElementById('login'),
    
             login_box=document.getElementById('login_box'),
    
             close=document.getElementById('close');
    
          // 封装添加事件监听程序
    
            function addEvent(ele,type,hander,e){
                if(ele.addEventListener){
                    ele.addEventListener(type,function(){
                      if(hander === showLogin && type === 'click'){
            showLogin(e);
          }else{
            hideLogin(e);
          }
                    },false)
                }else if(ele.attachEvent){
                    ele.attachEvent("on"+type,function(){
                      if(hander === showLogin && type === 'click'){
            showLogin(e);
          }else{
            hideLogin(e);
          }
                    });
                }else{
                    ele['on'+type] = function(){
                      if(hander === showLogin && type === 'click'){
            showLogin(e);
          }else{
            hideLogin(e);
          }
                    };
                }
    
          
        }
    
            // 显示登录层函数
    
          function showLogin(e){
    
                  e.style.display="block";
    
          // 执行代码
    
            }
    
            // 隐藏登录层函数
    
            function hideLogin(e){
    
                e.style.display="none";
    
              // 执行代码
    
            }
    
            //点击登录按钮显示登录层 
    
            addEvent(login_btn,'click',showLogin,login_box);
    
            // 执行代码
    
            //点击关闭按钮隐藏登录层
    
            addEvent(close,'click',hideLogin,login_box);
    
            // 执行代码
    
          }

    JS代码可以如上

    慕粉3274... 回复NemoOT...

    请问一下,这里问什么能写四个参数得啊?addEvent(login_btn,'click',showLogin,login_box); 不是只能写三个么?

    2016-07-31 23:13:58

    共 4 条回复 >

DOM事件探秘

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

99545 学习 · 1197 问题

查看课程

相似问题