suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Das Laden des js-Bildes wird nicht ausgeführt, nachdem das Bild geladen wurde

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];
}
大家讲道理大家讲道理2770 Tage vor579

Antworte allen(4)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-19 10:14:08

    // 这是经典闭包问题了,最简单的方法,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];
    }

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:14:08

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

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:14:08

    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)

    }

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:14:08

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

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

    Antwort
    0
  • StornierenAntwort