JavaScript - onload事件的范围

时间:2013-07-05 15:04:37

标签: javascript scope xmlhttprequest onload

我是Javascript的新手,我在代码中找不到什么问题...希望你能帮助我:))

    function addchannel(channel, program) {
            $('#channel-list').append("<li><h2>" + channel.name + " " program.response.name + "</h2></li>");
    };

    var xhr = new XMLHttpRequest({ mozSystem: true });
    xhr.open("GET", "...");
    xhr.responseType="json";
    xhr.send();
    xhr.onload = function(){

        var channels = xhr.response;
        for (var i=0; i<channels.length; i++) {

            xhr2 = new XMLHttpRequest({ mozSystem: true });
            xhr2.open("GET", "..."+channels[i]+"...");
            xhr2.responseType="json";
            xhr2.send();
            xhr2.onload = addchannel(channels[i], xhr2); //HERE IS THE PROBLEM...
        }


    }

我认为我的xhr2.onload函数(addchannel)有问题,看不到xhr2 ......我尝试过“this”或其他东西,但没有任何作用......

谢谢:)

1 个答案:

答案 0 :(得分:0)

function addchannel(channel, program) {
        $('#channel-list').append("<li><h2>" + channel.name + " " program.response.name + "</h2></li>");
};

我没有看到范围方面的任何问题,但您在addchannel函数中错过了一个加号(&#34;&#34; + program.response) ...