我试图编写一个js函数,在完成时触发另一个变量函数。我想我可以通过将第二个函数的名称作为字符串传递来完成此操作,但我无法使其工作。这是我的代码:
logMeIn('likeThisPost');
function logMeIn(callBack) {
//First function content
$.post("/ajaxurl/",
{
login_id: login_id,
intent: 'login'
},
function(){
console.log('Logged in, refreshing header');
$.post("/secondajaxurl/",{},
function(data){
//success
if(typeof callBack!=='undefined') {
window[callBack]();
}
}
);
}
);
});
}
根据我的想法,这应该在likeThisPost
成功完成两个ajax调用后运行logMeIn
,但我得到此错误:
window [callBack]不是函数
我称之为成功定义的函数存在,除此之外,它甚至不会尝试调用该函数,但它正在处理{{1作为文字而不是字符串。
我使用jQuery并将所有内容都包装在$中。我哪里错了?
答案 0 :(得分:0)
感谢Jonas W和Rory McCrossan,答案是将传递的函数更改为函数名称而不是字符串,然后直接调用函数而不是使用window
。
所以logMeIn(likeThisPost)
代替logMeIn("likeThisPost")
和callBack();
而不是window[callBack]();
。
谢谢!