0

我有一个功能:

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;

    })
    alert($.i); //this is not working
}

在上面的代码中,警报显示空警报框。但是当我有

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;
        alert($.i); //now this is working
    })

}

我想返回 name.php 文件返回的值。name.php包含echo "string". 它仅用于测试。在第二个给定的代码string中显示,但在第一个它不起作用。

我该怎么做才能从函数返回值并将接收到的值分配给在 $.post() 之外或在函数中声明的变量。

提前致谢。

4

1 回答 1

5

post 的异步回调是在 post 执行后调用。您可以从 post 中调用一个函数来对回调中的值返回执行操作。

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;
        //alert($.i); //now this is working
        callToFunctionPassingData(data);
    })    
}

您可以尝试使用延迟执行,这篇文章将指导您如何实现它。

于 2013-01-20T12:42:47.840 回答