在循环中使用 JQuery 更改 div 背景图像在谷歌浏览器上不起作用



在我的应用程序中,我有 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 + `)"`);      
}

最新更新