2012-05-28 4 views
6

Динамическое добавление изображения на страницу после загрузки, а затем взаимодействие с пользователем, и у меня возникли проблемы с запуском функции после того, как изображение полностью загружено. Я понял, что использование метода jQuery .load() будет прекрасным. Но в соответствии с моей консолью и кучей документирования бизнес .log он никогда не выполняется. См. Ниже .. спасибо!Обратный вызов загрузки изображения jQuery

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

UPDATE:

Чтобы уточнить, это после того, как document и window нагрузки.

ответ

15

В вашем коде .load() связан с body из-за цепочки.

Изменить код:

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); 

и он должен работать (http://jsfiddle.net/zerkms/f7epb/)

0

Функция Append возвращает содержащий элемент, а не тот, который был приложен, поэтому являются обязательными для вашей функции к нагрузка на корпус, а не на img.

Я предлагаю использовать appendTo, например, так:

$('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />') 
.load(function(){ 
    console.log('ad load complete'); 
    $('#submit').click(); 
}) 
.appendTo($('body')); 
Смежные вопросы