AJAX调用的JavaScript绑定

时间:2012-01-29 10:54:56

标签: javascript jquery ajax bind

我正在尝试将AJAX回调函数绑定到某个范围,我做错了什么?

这是我的代码:

var MainApp = {
    files:{
        "A":{
            url:"files/a.json",
            content:""
        },
        "B":{
            url:"files/b.json",
            content:""
        }
    },
    init:function () {
        this.loadFiles();
    },
    loadFiles:function () {
        for (var i in this.files) {
            var f = function (data) {
                console.log("callback",this);
            };
            console.log("binding",this);
            f.bind(this);
            $.get(this.files[i].url, f);
        }
    }
};

$(function () {
    MainApp.init();
});

2 个答案:

答案 0 :(得分:1)

f.bind(this);

Function#bind不会改变原始函数,它会返回绑定到参数的新函数。你可能意味着:

f= f.bind(this);

答案 1 :(得分:0)

尝试使用电话:

that = this;
$.get(this.files[i].url, function() {
   f.call(that)
});