我有以下 jQuery 使用带有 li 状态项的 ul 将状态加载到配置文件页面。each() 从 JSON 回调中获取项目,并且 load() 应该确保在创建 li 之前图像可用:
(showpic() 为我提供了一个格式良好的 url 以供使用。)
function showStatus(data){
var jsondata = $.parseJSON(data);
var testText = "";
$('#doNews').empty();
$('#doNews').append($('<ul/>', {"class": "newsList", id: "theNews"}));
$.each(jsondata, function(i, item){
$('<img src="' + showpic(item[3]) + '" class="newsImage">')
.load(function(){
$(this)
.appendTo($('#theNews'))
.wrap($('<li>', {"class": "newsItem"}))
.closest('li')
.append(item[5])
});
});
$("#statustext").val('');
}
问题是状态提要现在似乎按照图像加载的顺序写入页面。即,不是按照 JSON 项目顺序编写,而是按照加载图像的顺序编写 lis(这具有按用户分组状态的效果,而不是按日期写出,如 JSON 中那样)。
那么......我将如何以 JSON 顺序编写项目并仍然等待 img 加载?
顺便说一句,我看了这个qn: jQuery each() and load() ordering
它似乎在正确的轨道上,但是当我尝试在 load() 函数中使用 hide() 然后 show() 时,它似乎从未被调用,并且 img 保持隐藏状态。如果这是您建议的解决方案,请给我一个简单的例子。
谢谢!