Javascript 如何将预加载图像设置到相应的位置?
我最近遇到了这样一个问题,不知道该怎么解决。我有一个HTML图像表:Javascript 如何将预加载图像设置到相应的位置?,javascript,html,Javascript,Html,我最近遇到了这样一个问题,不知道该怎么解决。我有一个HTML图像表: 表格行数将根据用户输入动态更改,而无需页面刷新 表中的每一行在数据库中都包含一个特殊图像 我想为显示的行加载图像(许多其他行是隐藏的,所以我不想为它们加载图像) 我发现了一个类似以下的片段: var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg') .load(function() { if (!this.co
var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg')
.load(function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
alert('broken image!');
} else {
$("#something").append(img);
}
});
var img=$(“
但问题是,在.load方法中,图像本身会忘记它应该放在哪里(因为我使用for循环在表中逐行加载图像)
有人知道如何解决此问题吗?您需要将图像与其行关联。如果您在创建图像时手头有行,您可以在.load
的回调中使用它。例如,如果在某个时候您有一个新行列表,您可以执行以下操作:
var loadImageForRow = function(row) {
var img = $("<img/>").attr('src', 'my-image-source.png')
.load(function() {
if (!this.complete || typeof this.naturalWidth == 'undefined' || this.naturalWidth == 0) {
// handle broken image
} else {
row.find('.image-cell').append(img);
}
});
});
newRows.each(function() { loadImageForRow($(this)); }
var loadImageForRow=函数(行){
变量img=$(“
这将使用回调内部封闭闭包中的行
参数。或者,您可以使用图像或行上的数据属性(例如,在img
元素上放置类似data row index='17'
的内容)或任何等效机制来关联这两个参数。我假设$(“#某物”)
是应该添加图像的行吗?是的。但是由于行号不是固定的,所以我可以传入一个变量,如“for I=0”中的“I”;iHi Avish,非常感谢您的帮助!我会尝试让您知道它是否适合我。