Javascript jQuery在for循环中重复返回相同的元素
我对下面描述的加载函数有问题。出于某种原因,尽管每次我都向它传递不同的参数(我已经用console.log(display)检查过),但它似乎返回相同的jQuery对象 我不确定是否有任何其他信息我可以提供,但让我知道,我会看看我能做什么Javascript jQuery在for循环中重复返回相同的元素,javascript,jquery,object,Javascript,Jquery,Object,我对下面描述的加载函数有问题。出于某种原因,尽管每次我都向它传递不同的参数(我已经用console.log(display)检查过),但它似乎返回相同的jQuery对象 我不确定是否有任何其他信息我可以提供,但让我知道,我会看看我能做什么 // ... function image(path, fn) { $(new Image()).load(function() { if (typeof fn === 'function') { fn($(t
// ...
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);
});
// ...
/。。。
功能图像(路径,fn){
$(新图像()).load(函数()){
如果(fn的类型==‘函数’){
fn($(本));
}
})
.错误(函数(){
console.error('无法加载映像:'+imgBasePath+path);
})
.attr('src',imgBasePath+路径);
}
功能负载(p、信息、fn){
显示=信息| |{
用户名:p.Username,
生活:p.location,
支持:p.team,
级别:p.Level
};
图像(p.化身、功能(img){
变量详细信息=$(''{
类别:“玩家详细信息”
});
用于(显示中的名称){
detail.append($('').html(name+:'+display[name]);
}
如果(fn的类型==‘函数’){
fn(img,细节);
}
});
}
// ...
$。每个(玩家、功能(i、p){
变量id,elem;
id=(player.sessionid==p.sessionid)?“me”:null;
元素=$(''{
类:'player clearfix',
目标:p.sessionid,
id:id
});
加载(p,{Username:p.Username,Level:p.Level},函数(img,详细信息){
附加物(元素);
详情。附录(要素);
});
元素.progress.append(elem);
});
// ...
我找到了答案display=info | |{…
在全局范围内,因为我没有在它前面加上var
,将它改为var display=info |{…
修复了这个问题