javascript – Das Laden des js-Bildes wird nicht ausgeführt, nachdem das Bild geladen wurde
大家讲道理
大家讲道理 2017-05-19 10:12:08
0
4
587

1. Der angenommene Effekt ist, dass jedes Mal, wenn ein Bild geladen wird, eine Warnung „1“ ausgegeben wird, aber die tatsächliche Wirkung ist, dass nach dem Laden aller Bilder viermal eine Warnung ausgegeben wird. Das Folgende ist der Code, bitte helfen Sie mir, ihn zu erklären.
//imgArray[ ] Hier gibt es 4 Bildlinks, ich werde sie nicht schreiben, wenn sie zu lang sind
var count = 0;

for (var i = 0; i < imgArray.length; i++) {
    var imgobj = new Image();
    imgobj.onload = function () {
        alert("1");
        if (count == imgArray.length - 1) {
            loading.style.display = "none";
        }
        ++count;

    };

    imgobj.src = imgArray[i];
}
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(4)
phpcn_u1582
// 这是经典闭包问题了,最简单的方法,var改成let试试
for (let i = 0; i < imgArray.length; i++) {
    let imgobj = new Image();
    imgobj.onload = function () {
        alert("1");
        if (count == imgArray.length - 1) {
            loading.style.display = "none";
        }
        ++count;

    };

    imgobj.src = imgArray[i];
}
仅有的幸福

写个加载的方法,递归就完了

巴扎黑

var count = 0;
for (var i = 0; i < imgArray.length; i++) {

(function(){
    var imgobj = new Image();
    imgobj.onload = function () {
        alert("1");
        if (count == imgArray.length - 1) {
            loading.style.display = "none";
        }
        ++count;
    };
    imgobj.src = imgArray[i];
})(i)

}

仅有的幸福

问题已经解决,应该是图片引用的不对.抱歉浪费各位大神的时间了!

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJgAmAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK...略....
上面是引用的图片地址,改成下面的就正常执行了,
https://ss1.bdstatic.com/70cF...

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage