问候,
我正在使用一个定义如下的JavaScript对象:
var ytVideoData = new Object();
然后我在jQuery .ajax()中为它赋值:
$.ajax({
type: "GET",
url: "xmlproxy.php?url="+ytId+"&mode=native",
success: function(data) {
ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
}
});
在另一个函数中,我想访问我刚刚设置的缩略图属性。但是,当我这样做时:
function addPlaylistItem(tumblrUser, videoData) {
console.log(videoData.thumbnail);
}
我进入控制台的所有内容都是“未定义”。当我这样做时:
console.log(videoData);
我将整个对象记录到控制台,并且可以看到正确设置在对象内部的缩略图属性,如下所示:
http://mp3.deceast.com/js-objectissue.jpg
在尝试了几种不同的方法后,我似乎无法让它发挥作用。如何访问此对象属性?
答案 0 :(得分:0)
通过ajax进行的回调是异步的。这意味着你无法确定何时运行成功函数。
可能发生的订单是
$.ajax
addPlaylistItem // undefined
success // defined
尝试在成功回发中调用该函数
success: function(data) {
ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
addPlaylistItem(getTumblrUser(), ytVideoData);
}