+ -
当前位置:首页 → 问答吧 → js全局变量

js全局变量

时间:2009-08-11

来源:互联网

复制代码
  1.         $(document).ready(function(){
  2.             var aa;
  3.             $('.hide').hide();
  4.                     //取登入信息
  5.             $.ajax({
  6.                 url: '<?php echo url('channel','user','ajaxlogin')?>',
  7.                 type: 'GET',
  8.                 dataType: 'json',
  9.                 cache : false,
  10.                 success: function(data){
  11.                     alert(data.uid);
  12.                     aa = data;
  13.                    }
  14.             });
  15.             return false;
  16.         });

这样写为什么不能给aa赋值,那里是不是写错了?

作者: youzlm   发布时间: 2009-08-11

我用IE6、Firefox3.5和Chrome3测试都正常

应该是你没理解全局变量,ready里面的aa是内部变量,不是全局变量,并且可以在success里被正确赋值,但你不能从ready之外获取aa

作者: keakon   发布时间: 2009-08-11

我改了一下就可以了,,谢谢

作者: youzlm   发布时间: 2009-08-11

楼主是怎样改的?

作者: qinains   发布时间: 2009-11-07

这有两个线程,所以aa是两个不同的aa:第一个aa是主线程的,第二个是$.ajax()线程的。 当在$.ajax({……})中加async: false,即

$.ajax({
……
async: false,
……
})
就变成单线程了,两个不同的aa就是同一个aa.

作者: qinains   发布时间: 2009-11-08