jQuery的$.getJSON的赋值问题

[javascript]<script>
var a;
$.getJSON('/some.json',{'action':'test'}, function(data) {
a=data.id;
alert(a);
});
alert(a);
</script>
[/javascript]
测试下来你会发现第一个alert是undefined,第二个才是data.id的内容
[javascript]<script>
$.getJSON('/some.json',{'action':'test'}, function(data) {
a=data.id;
});
alert(a);
</script>[/javascript]
这段js运行下来你会发现 a根本没有定义 js会直接报错。
这是为什么呢?
为什么$.getJSON得到东西在后面执行呢?
这是因为JQuery中AJAX默认是异步方式,所以会有延迟,如果一定要在外边调用,必须设置成同步的方式。
[javascript]<script>
$.ajaxSetup({ async: false});//设置成同步
$.getJSON('/some.json',{'action':'test'}, function(data) {
a=data.id;
});
alert(a);
</script>[/javascript]
这样就OK了

Author Info :
  • From:jQuery的$.getJSON的赋值问题
  • URL:https://blog.ihipop.com/2011/04/2211.html
  • Please Reserve This Link,Thanks!
  • 《jQuery的$.getJSON的赋值问题》上有2条评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注