2009-05-01 2 views
1

Я загружаю html из запроса ajax, а некоторые img теги в нем.Как узнать, когда загружается содержимое, загруженное с помощью ajax, для загрузки изображений?

Мне нужно знать, когда изображения, загруженные в ajax, полностью загружены, чтобы изменить размер контейнера. Я не знаю, сколько изображений в итоге, поэтому я не могу просто проверить значение .complete.

Знаете ли вы, что это такое?

Спасибо!

Leandro

ответ

1

Если вы используете JQuery, то $(window).load() команда может создать функцию, которая будет вызываться один раз загружаются все изображения, следующим образом:

$(window).load(
    function() { 
     // weave your magic here. 
    } 
); 

Если вы не используете jQuery, я бы просто сделал то, что сделал, когда хочу немного узнать о его функциональности: загрузите его и изучите источник, чтобы узнать, как он это делает. Затем сделайте это :-)

+2

Ну, ajax загружает изображения, когда пользователь его запрашивает. Поэтому после загрузки контента много. Можно использовать функцию .load() в любом элементе? возможно, я мог бы связать это событие с контейнером. –

0

XMLHTTPrequests имеют свойства, которые вы можете использовать для определения того, когда загрузка завершена. Если вы используете javascript напрямую, вам нужно назначить функцию событию onreadystatechange. Это называется каждый раз, когда изменяется состояние. Состояния сохраняются в ReadyState и являются: 0 непосвященных 1 Загрузка 2 Loaded 3 Interactive 4 Полная

В функции вы убедитесь, что состояние 4 и вызвать другие необходимые функции

JQuery имеет события, которые сообщают вам, когда произошли определенные вещи. View the AJAX Documentation

+1

Да, но нет события, когда загружаются образы результирующего запроса ajax. Решение .load() - это решение. Спасибо в любом случае. –

0

Хорошо, спасибо Pax, я нашел решение.

На успех случае запроса AJAX (с помощью JQuery), я добавил следующий код:

 

$('img', this).load(function() { 
    resize_element(this); 
}); 
 

Спасибо вам обоим!