Javascript jQuery在for循环中重复返回相同的元素

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

我对下面描述的加载函数有问题。出于某种原因,尽管每次我都向它传递不同的参数(我已经用console.log(display)检查过),但它似乎返回相同的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);
});

// ...
/。。。
功能图像(路径,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 |{…
修复了这个问题