这段代码适用于Chrome & Firefox,但不适用于IE9 .需要一些提示..。
var obj = {
data: [],
json: function() {
var self = this;
$.getJSON("highscore.json", function(resp) {
self.data = resp.splice(0);
});
}
};更新:
谢谢你的帮助..。
这是ie9的一个问题(抛出了错误代码"c00ce56e“)--这是字符集的问题。我会在php脚本中尝试另一个标题..。
thx @ all
发布于 2012-04-25 18:02:55
在我看来,您的代码很好,除非完成json请求,否则不会填充数据,这不是即时的,因为ajax是异步的。
obj.json();
alert(obj.data); // []
setTimeout(function(){
alert(obj.data); // ["foo","bar","foobar"]
},5000);更新
我建议向名为request的对象添加一个属性,并将$.getJSON请求存储在其中。此时,直接将数据存储在对象上是没有意义的,因为您总是可以从请求中获得数据。
var obj = {
request: {done:$.noop,fail:$.noop,always:$.noop},
json: function() {
this.request = $.getJSON("highscore.json");
}
};
obj.json();
// you can run the following as many times as you need to use the data.
obj.request.done(function(data){
alert(data.splice(0));
});请注意,在它的当前形式中,您必须调用.json()才能向请求添加回调。
https://stackoverflow.com/questions/10321169
复制相似问题