【发布时间】:2019-01-14 18:31:42
【问题描述】:
我正在寻找动态加载图像:
<img data-src="test01">
然后使用 jQuery 获取 data-src,然后加载与该名称关联的图像,加上扩展名。如果该扩展失败,则继续进行下一个扩展,依此类推,直到我加载默认图像时到达底部。但是我不知道如何在我设置图像的attr 一次后检查是否有错误。这是我到目前为止的循环,我得到“.error not a function”
$("img").each(function(){
var newSource = $(this).data('src').toString();
$(this).attr('src', 'images/'+newSource+'.gif').error(function(){
$(this).attr('src', 'images/'+newSource+'.jpg').error(function(){
$(this).attr('src', 'images/'+newSource+'.png').error(function(){
$(this).attr('src', 'images/default.jpg');
});
});
});
});
我这样做的原因是因为我们有一个只保存图片标题的数据库,但是,多年来,不同的人向网站上传了不同的图片格式,我们希望能够加载所有这些都在页面上,无扩展名,然后遍历每个扩展名,直到找到存在的文件,如果不存在,则默认为预设的硬编码图像 URL
【问题讨论】:
-
因为我们想在前端做这个。
-
再次,我们希望在前端执行此操作。我不知道保存这些图像的数据库有多复杂。如果您的建议可行,我相信我们的后端开发人员会首先提出建议。
-
与其反复更改 src,不如像对图像的快速 HEAD ajax 请求那样执行。如果您没有收到 404 或其他错误代码,则您知道该 url 有效,然后然后更改 src。
-
@Taplar 请提交您的建议作为示例的答案。
标签: javascript jquery image src onerror