2012-05-28 18 views
6

Dynamisch ein Bild der Seite nach dem Laden dann Benutzerinteraktion hinzufügen und habe Probleme beim Abfeuern einer Funktion, nachdem das Bild vollständig geladen wurde. Ich dachte, dass mit jQuery .load() Methode wäre in Ordnung .. aber nach meiner Konsole und eine Reihe von Dokumentieren .log Geschäft wird es nie ausgeführt. Siehe unten .. danke!jQuery Bild laden Rückruf

$('body') 
    .append('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />') 
    .load(function(){ 
     console.log('ad load complete'); 
     $('#submit').click(); 
    }); 

UPDATE:

Um zu klären, ist dies nach den beiden document und window Last.

Antwort

15

In Ihrem Code ist .load() wegen der Verkettung mit der body verwandt.

Ändern Sie den Code zu:

var img = $('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />'); 
img.load(function(){ 
    console.log('ad load complete'); 
    $('#submit').click(); 
}); 

$('body').append(img); 

und es sollte funktionieren (http://jsfiddle.net/zerkms/f7epb/)

0

Die Append Funktion gibt das Aufnahmeelement, nicht derjenige, der angehängt wurde, so dass Sie Ihre Funktion die verbindlich Körperlast und nicht zum img.

Ich schlage vor, mit appendTo, etwa so:

$('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />') 
.load(function(){ 
    console.log('ad load complete'); 
    $('#submit').click(); 
}) 
.appendTo($('body'));