class="replace-2x"
如果用户在具有 Retina 显示屏的移动设备上,我正在运行 Javascript 替换功能,以将我的 jQuery Mobile 网站上的标准图像替换为 Retina 质量的图像。例如,在 Retina 设备上,logo.png
将替换为logo@2x.png
. JS函数在这里:
function highdpi_init() {
$(".replace-2x").each(function () {
var src = $(this).attr("src");
$(this).attr("src", src.replace(".png", "@2x.png").replace(".jpg", "@2x.jpg"));
});
}
$(".page").live('pageinit',function(event){
highdpi_init();
});
我现在遇到了替换功能不止一次运行的问题。因此,例如,它在页面加载时替换logo.png
为logo@2x.png
,但随着页面继续加载,它会一遍又一遍地在 img src 中替换.png
为@2x.png
,因此图像标签最终看起来像这样:
<img src="mobile/images/logo@2x@2x@2x@2x@2x@2x@2x@2x@2x@2x@2x.png" class="replace-2x" alt="logo" width="200">
如何防止它多次替换单个 img 元素?请记住,我将在同一页面上有多个图像,因此该功能需要应用于所有图像,但每个图像只有一次。