首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >internet 9& javascript变量作用域问题

internet 9& javascript变量作用域问题
EN

Stack Overflow用户
提问于 2012-04-25 17:59:42
回答 1查看 758关注 0票数 1

这段代码适用于Chrome & Firefox,但不适用于IE9 .需要一些提示..。

代码语言:javascript
复制
var obj = {
    data: [],

    json: function() {
        var self = this;
        $.getJSON("highscore.json", function(resp) {
            self.data = resp.splice(0);
        });
    }
};

更新:

谢谢你的帮助..。

这是ie9的一个问题(抛出了错误代码"c00ce56e“)--这是字符集的问题。我会在php脚本中尝试另一个标题..。

thx @ all

EN

回答 1

Stack Overflow用户

发布于 2012-04-25 18:02:55

在我看来,您的代码很好,除非完成json请求,否则不会填充数据,这不是即时的,因为ajax是异步的。

代码语言:javascript
复制
obj.json();
alert(obj.data); // []
setTimeout(function(){
    alert(obj.data); // ["foo","bar","foobar"]
},5000);

更新

我建议向名为request的对象添加一个属性,并将$.getJSON请求存储在其中。此时,直接将数据存储在对象上是没有意义的,因为您总是可以从请求中获得数据。

代码语言:javascript
复制
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()才能向请求添加回调。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10321169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档