我有一个看起来像这样的功能。它有效。
问题
此函数myFunction
由许多其他函数调用,并且取决于它应该在成功时执行不同的操作。
问题
这是如何解决的?某种回调?或者我是否必须为该功能发送一个额外的参数才能知道?
代码
function myfunction()
{
var value = "myvalue";
var post_url = "ajax.php";
$.post(
post_url,
{
value: value,
},
function(responseText){
var json = JSON.parse(responseText);
if(json.success)
{
console.log('success');
}
}
);
}
}
答案 0 :(得分:2)
添加一个函数参数并在成功时调用它:
function myfunction(callback)
{
var value = "myvalue";
var post_url = "ajax.php";
$.post(
post_url,
{
value: value,
},
function(responseText){
var json = JSON.parse(responseText);
if(json.success)
{
console.log('success');
//call callback
callback();
}
}
);
}
}
答案 1 :(得分:1)
让myfunction
接受回调:
function myfunction(callback)
{
var value = "myvalue";
var post_url = "ajax.php";
$.post(post_url, { value: value }, callback);
}
然后你可以在POST
回来时传递任何要执行的函数:
myfunction(function(responseText){
var json = JSON.parse(responseText);
if (json.success)
{
console.log('success');
}
});
答案 2 :(得分:0)
是的,你需要有一个参数来识别来电者,比如
function myfunction(caller) {
if (caller == "Foo") {
// some code
}
}
myFunction("Foo");
或使用全局变量
function myFunction() {
if (caller == "Foo") {
// some code
}
}
caller = "Foo";
myFunction();