我们能通过吗;";在javascript/jquery中从一个函数到另一个函数?
我编写了一个函数,如:我们能通过吗;";在javascript/jquery中从一个函数到另一个函数?,javascript,jquery,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 u
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
clickMe
和onLogin
创建单独的功能?为什么不把onLogin
放在onClickFunction
数据结构中呢?只是为了看得清楚,构建不复杂的代码。我的onLogin代码本身大约是50LOC。这就是为什么…但是,我想问你为什么要创建第二个函数,而第一个函数可以正常工作。为什么要创建第二个函数名?做相同事情的两个函数比在两个地方使用相同的函数名更复杂。要访问uuid,我需要移动到其他页面js,这是一种方法。或者我可以在这个页面本身中访问uuid。所以我编写了函数clickMe,它调用onLogin()…对不起,但我不理解最后一条评论中的任何内容。这个函数是否存在浏览器兼容性问题??我需要在旧版本的浏览器上运行我的代码。它是香草JS,所以可能不是。不过,你必须测试它。我的意思是它与其他浏览器不兼容。如果您误解了,很抱歉。@ajayv很高兴知道。。)