我写了一个函数,例如:
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/