我遇到下面描述的加载功能问题。出于某种原因,即使我每次都传递一个不同的参数(我用console.log(显示)检查过它),它似乎返回相同的jQuery对象。
我不确定我能提供的是否还有其他信息,但请告诉我,我会看到我能做些什么。
// ...
function image(path, fn) {
$(new Image()).load(function() {
if (typeof fn === 'function') {
fn($(this));
}
})
.error(function () {
console.error('Unable to load image: ' + imgBasePath + path);
})
.attr('src', imgBasePath + path);
}
function load(p, info, fn) {
display = info || {
Username : p.username,
Lives : p.location,
Supports : p.team,
Level : p.level
};
image(p.avatar, function(img) {
var detail = $('<div></div>', {
class: 'player_details'
});
for (name in display) {
detail.append($('<div>').html(name + ': ' + display[name]));
}
if (typeof fn === 'function') {
fn(img, detail);
}
});
}
// ...
$.each(players, function(i, p) {
var id, elem;
id = (player.sessionid === p.sessionid) ? 'me' : null;
elem = $('<div />', {
class: 'player clearfix',
target: p.sessionid,
id: id
});
load(p, {Username: p.username, Level: p.level}, function(img, details) {
img.appendTo(elem);
details.appendTo(elem);
});
elements.progress.append(elem);
});
// ...
答案 0 :(得分:0)
我找到了答案。 display = info || {...
位于全球范围内,因为我没有将其添加到var
前面,将其更改为var display = info || {...
解决问题。