recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - le chargement de l'image js n'est pas exécuté après le chargement de l'image

1. L'effet supposé est que chaque fois qu'une image est chargée, alertez "1", mais l'effet réel est qu'une fois toutes les images chargées, alertez 4 fois
2 Voici le code, aidez-moi à l'expliquer.
//imgArray[ ] Il y a 4 liens d'images ici, je ne les écrirai pas s'ils sont trop longs
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];
}
大家讲道理大家讲道理2769 Il y a quelques jours571

répondre à tous(4)je répondrai

  • 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];
    }

    répondre
    0
  • 仅有的幸福

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

    Écrivez une méthode de chargement et cela se fait de manière récursive

    répondre
    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)

    }

    répondre
    0
  • 仅有的幸福

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

    Le problème a été résolu. Il se pourrait que la photo ait été mal citée. Désolé de faire perdre du temps à tout le monde !

    data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJgAmAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKCh Mo GhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK... légèrement....
    Ce ci-dessus est l'adresse de l'image référencée, remplacez-la par la suivante et elle s'exécutera normalement,
    https :/ /ss1.bdstatic .com/70cF…

    répondre
    0
  • Annulerrépondre