开发者

JavaScript Objects: Property Set but Returns undefined When Accessed

Greetings,

I'm working with a JavaScript object that is defined like so:

var ytVideoData = new Object();

I then assign a value to it inside of a jQuery .ajax():

$.ajax({
    type: "GET",
    url: "xmlproxy.php?url="+ytId+"&mode=native",
    success: function(data) {

        ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']")开发者_JAVA技巧.attr("url"); // default thumbnail image
    }
});

In another function, I want to access the thumbnail property I just set. However, when I do:

function addPlaylistItem(tumblrUser, videoData) {
    console.log(videoData.thumbnail);
}

All I get in the console is "undefined". When I do:

console.log(videoData);

I get the entire object logged to the console and can see the thumbnail property properly set inside of the object like so:

http://mp3.deceast.com/js-objectissue.jpg

After trying several different methods I just can't seem to get it work. How do I access this object property?


A callback via ajax is asychronous. WHich means you can't tell when it will run the success function.

The order that is probably happening is

$.ajax
addPlaylistItem // undefined
success // defined

Try calling the function in the success postback

success: function(data) {
    ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
    addPlaylistItem(getTumblrUser(), ytVideoData);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜