问答详情
源自:3-3 编程练习

addEvent(node,event,function)中的function为什么不可以带参数?就像我写的这样。

        function showLogin(box){
           box.style.display='block';
        }
        function hideLogin(box){
           box.style.display='none';
        }
        //点击登录按钮显示登录层 
        addEvent(login_btn,'click',showLogin(login_box));
        //点击关闭按钮隐藏登录层
        addEvent(close,'click',hideLogin(login_box));

在点击时是不能打开和关闭登录窗口的,谢谢。

提问者:Winar_阿进 2016-01-20 10:44

个回答

  • _StarSun
    2016-01-20 15:39:18

     var eventU={addEvent:function(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';
            }
    
    
     
            eventU.addEvent(login_btn,'click',showLogin();
    
            eventU.addEvent(close,'click',hideLogin();
    }

  • 希仑
    2016-01-20 15:31:25

    addEvent(login_btn,'click','这位置是放一个函数名或者是匿名函数');

    showLogin(login_box);hideLogin(login_box);是个表达式。

  • 希仑
    2016-01-20 15:13:55

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

    addEvent(login_btn,'click',showLogin);

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

    addEvent(close,'click',hideLogin);