Как работает ввод тега img в DOM вручную

#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 это не проблема