【问题标题】:jQuery global variabiles $.post();jQuery 全局变量 $.post();
【发布时间】:2012-05-28 17:00:46
【问题描述】:
$.post("general.php", {/* some values */}, function(data){var id = data;});
alert(id);

问题是,警报是空的。有人知道为什么吗?以及如何解决?谢谢。

【问题讨论】:

    标签: jquery ajax function post var


    【解决方案1】:

    有两个问题:

    • 一个是ajax是异步的,alert在ajax回调之前执行,这里设置了id变量

    • 第二个是变量不是全局的,只在回调范围内可见

    所以,我建议你将变量声明为 global(如果你需要它以供以后使用):

    var id;// in the global scope
    

    或

    window.id = '';
    

    你可能应该执行回调中的逻辑:

    $.post("general.php", {/* some values */}, function(data){ 
        window.id = data;
        alert(data);
    });
    

    【讨论】:

    • 是的,你是对的。但还有另一个问题。如果您第一次运行此代码,它将不起作用。第二次起作用了。这是第一个问题。如何解决?
    • 它第一次也应该可以工作。你能把你的代码弄乱吗?
    • 我无法制作小提琴,因为需要加载另一个文件。我认为第一次也应该可以正常工作,但我可能还有其他简单的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多