变量不能按预期工作JQuery

时间:2013-01-20 12:40:36

标签: jquery variables post

我有一个功能:

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()外部或函数中声明的变量。

提前致谢。

1 个答案:

答案 0 :(得分: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);
    })    
}

您可以尝试使用deffered执行此post将指导您如何实现它。