我写了一个像这样的函数:
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 is undefined”。我应该如何通过这个“ 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]);
将
arguments
转换为适当的数组使用
apply
将它们传递给处理程序onLogin
关于javascript - 可以在javascript/jquery中将“e”从一个函数传递给另一个函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32152317/