【发布时间】:2010-11-29 20:30:33
【问题描述】:
在回调函数之外使用全局变量的最佳方法是什么?
var icon;
$(function(){
$.get('data.xml', function(xml){
icon = xml.documentElement.getElementsByTagName("icon");
//this outputs a value
console.log(icon);
});
//this is null
//How can this maintain the value set above?
console.log(icon);
});
【问题讨论】:
-
你要归档什么?
-
它如何保持什么价值?你需要更清楚。
-
没有最好的方式来使用它们
-
它只需要保存xml元素的值。
-
这个问题已经被问了一百万次了。由于 $.get 是异步的,因此传递给它的函数不会立即执行。因此,在调用 $.get 后调用 console.log 时,尚未调用回调。这就是为什么添加足够长的超时会起作用(但会是一个非常讨厌的黑客)
标签: javascript jquery ajax