在我的应用程序中,我有 for 循环来更改两个div 的背景图像。代码是:
for (var i = 0; i < length; i++) {
$("div_" + (i + 1)).css("background-image", "../imageFile.png");
}
适用于Internet Explorer,Edge,Firefox,但不适用于Google Chrome。在谷歌浏览器上,仅更改最后一张图片。
谢谢。
再次嗨,感谢您的快速回复 奇里斯蒂安和纳斯切兹!我很抱歉,我没有写所有的代码。在原始代码中,我放置了正确的结构。它在其他浏览器中完美运行。但是在谷歌浏览器和Opera上,它只显示最后一个div的图像。
原始代码是:
function testFunction() {
$.ajax({
type: 'post',
url: '@Url.Action("SomeAction", "SomeController")',
data: {
},
async:false,
dataType: 'json',
success: function(dataPieces) {
//I get all pieces whitout any error!
config.allPieces = dataPieces;
for (var i = 0; i < dataPieces.length; i++) {
$("#div_" + (i + 1)).css("background-image", dataPieces[i].ImagePath);
}
},
error: function(error) {
alert("9- La transaction a rencontré une erreur. n" + error.message);
}
});
}
我找到了解决方案,更改图像事件会触发另一个事件。问题来自谷歌浏览器的速度。其他浏览器没有足够的时间来刷新某些东西,但谷歌浏览器和Opera的速度足够快。结果,我更改了方法,添加了一个参数以避免调用其他事件。
非常感谢您的时间。
我做了一些测试,我想知道该代码是如何工作的,我的意思是,试图在不添加url()
的情况下更改背景对我不起作用。试试这个:
for (var i = 0; i < length; i++) {
$("#div_" + (i + 1)).css("background-image",`"url(` + dataPieces[i].ImagePath + `)"`);
}