javascript - 我们可以在 javascript/jquery 中将 "e"从一个函数传递到另一个函数吗?

标签 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”?

最佳答案

您正确地指向了处理程序,您只需要转发参数即可。

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]);
  • 参数转换为正确的数组
  • 使用 apply 将它们传递给处理程序 onLogin

关于javascript - 我们可以在 javascript/jquery 中将 "e"从一个函数传递到另一个函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152317/

相关文章:

javascript - 将复选框和音频状态保存到本地存储

javascript - 删除 URL 以获取 YouTube ID

javascript - 使用 JQuery 导航无根 dom

javascript - 如何从 PHP 向 Javascript 发送变量?

javascript - 了解 javascript 对象

javascript - 自动隐藏 Bootstrap 弹出窗口

javascript - jQuery 如何将多个 img src 追加到一个数组中

jquery - 如何将 ajax 调用中的多个参数传递给 MVC Controller

javascript - 这与 jQuery 相关吗,这是什么意思?

javascript - Node.js:将多个路由集中到一个路由文件中