2011-01-23 148 views
1

关于下面的例子中一个jquery范围快速的问题:新手问题

$(function(){ 
    var test; 
    $.get('txtfile.txt', function(txtfile) { 
     test = txtfile.split('\n'); 
    }); 
    console.log(test); 
}); 

控制台返回“测试”是未定义的。请你指出我犯了什么错误。 谢谢。

+0

jQuery没有自己的范围概念 - 它只是一个Javascript库。 – 2011-01-23 02:13:00

+0

:)好吧,它不直接在jQuery中的作用域,而是我在jquery结构中迷失的事实... – uhandoh 2011-01-23 02:54:27

回答

3

$.get异步工作(“Ajax”中的“A”代表“异步”)。成功回调(您正在使用function(){}构造定义)仅在Ajax调用完成后调用。当代码到达时

console.log(test); 

尚未发生。

如果您将console.log调用放入成功回调中,它将按预期工作。