#javascript #jquery #dom
#javascript #jquery #dom
Вопрос:
Я вручную вводю тег в DOM, однако мне нужно проверить, был ли он загружен, прежде чем предпринимать какие-либо действия с этим компонентом в DOM. Почему это происходит?
let img = $("<img />").attr({
src: 'path to img',
name: 'name of img'
});
$("#myDIV").html(img);
$(img).one('load', function(){
// why can i do action with 'img' only after being available in the DOM?
});
Комментарии:
1. Загрузка изображения происходит асинхронно.
2. Это зависит от того, что вы пытаетесь сделать с компонентом. Если вы хотите получить размер, вам нужно дождаться загрузки изображения. Если вы хотите изменить его CSS, вам не нужно ждать.
3. Чтобы исключить проблемы с синхронизацией, привяжите обработчик загрузки к изображению, прежде чем прикреплять его к DOM
4. @Taplar эта и другая проблема может заключаться в том, что html принимает строку в соответствии с документами jQuery api.jquery.com/html
5. @jcubic jsfiddle.net/1632hojp это не проблема