我们可以通过" e"从javascript / jquery中的一个函数到另一个函数?

时间:2015-08-22 04:29:39

标签: javascript jquery

我写过一个函数,如:

 var link = {
       login : "#log_In"
    };

    var onLogin = function(e){
       e.preventDefault();

      //login functionality
    }

    var clickMe = function(){
       onLogin();//error can not read property of undefined "e is undefined"
    }

   var onClickFunction = {
          login : clickMe
    };

现在当我点击时:

$(SELECTORS.link[key]).click(onClickFunction[key]);

我尝试将e传递给clickMe函数并将该e发送到onLogin()仍然得到" e未定义"。我该如何通过这个" e" ??

1 个答案:

答案 0 :(得分:2)

您正确指向处理程序,您只需要传递参数。

var link = {
   login : "#log_In"
};
var onClickFunction = {
    login : clickMe
};

var onLogin = function(e){
   e.preventDefault();

  //login functionality
};

var clickMe = function(){
    // relay the arguments to the handler onLogin
   onLogin.apply(this, Array.prototype.slice.apply(arguments));
};


$(SELECTORS.link[key]).click(onClickFunction[key]);
  • arguments转换为正确的数组
  • 使用apply将其传递给处理程序onLogin