0
以下のロード関数に問題があります。何らかの理由で、毎回別のパラメータを渡しても(私はconsole.log(display)でこれをチェックしました)、同じjQueryオブジェクトを返すようです。forループ内で同じ要素を繰り返し返す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);
});
// ...