来自另一个函数的jQuery回调

时间:2013-01-17 17:45:54

标签: jquery function post callback

我有一个看起来像这样的功能。它有效。

问题

此函数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'); 
                }
            }
        );
    }
}

3 个答案:

答案 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();