2016-09-21 3 views
0

Ich habe eine Webseite in einem Iframe geladen, die Javascript verwendet, um die Höhe des Dokuments der Webseite zu berechnen (das Dokument kann Bilder haben). Im Moment habe ich den folgenden Code, um die Höhe zu berechnen, nachdem das Bild geladen:Javascript "Image load" feuert mehrere Male

$("#campaignContainer img").bind("load", function() { 
       console.log("image load call"); 
       callPostSize(this.src);    
      }) 
      .each(function() {   
       if(this.complete) { 
        console.log("Before image load call from complete"); 
       /*this.onload= function(){console.log("image load call"); 
              callPostSize(this.src); 
              };*/ 
        $(this).load(); 
        console.log("call load from image complete"); 
       } 

Ich habe bemerkt, dass das Bild Last mehrmals im Falle eines Bildes ausgelöst wird; Wenn die Bilder nicht zwischengespeichert werden, wird sie 2 Mal ausgelöst, andernfalls wird sie 3 mal ausgelöst.

Meine Frage ist 1) warum Bild laden mehrmals ausgelöst wird? Ist es ein Jquery-Problem oder einige Browser-Ereignisse? 2) Gibt es eine Möglichkeit, dies zu stoppen?

Ich habe versucht jquery.one aber ohne Erfolg: es gibt nicht die genaue Höhe (nur der letzte Trigger gibt die genaue Höhe).

+0

Wie viele Bilder haben Sie in #campaignContainer? –

+0

Das Problem wurde gefunden. Dort lädt img Ladung von einem anderen Abschnitt, der nicht offensichtlich war. – user2989137

Antwort

0

Sie verwenden 'IMG' Tag als Selektor. Es wird also für alle Bilder im 'campaignContainer' aktiviert.

+0

Es gibt nur ein Bild in dem Beispiel, das ich ausprobiere – user2989137

0

Das Problem gefunden. Die Bildladung wurde explizit erneut von einem anderen Teil des Codes aufgerufen, der nicht offensichtlich war.

Verwandte Themen