Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запуск функции после загрузки дива (https://javascript.ru/forum/misc/58019-zapusk-funkcii-posle-zagruzki-diva.html)

qwe88 31.08.2015 13:18

Запуск функции после загрузки дива
 
Добрый день!
Подскажите, пожалуйста, как сделать запуск функции, только после загрузки div-а (с любым содержанием).
После дива расположить скрипт - нельзя
Jquery c функцией ready - нельзя

Lemme 31.08.2015 13:36

qwe88, без ready - window.onload ?:D

qwe88 31.08.2015 13:37

:)
НА сколько я понимаю window.onload это загрузка всей страницы. А мне нужно после загрузки конкретного элмента

tsigel 31.08.2015 13:49

qwe88,
Ну если вы знаете его селектор или id, то можно лупить по нему (например каждые 10 или 5 мс) в доме пока не появится) Но лучше дождаться хотябы загрузки дом, например body onload

qwe88 31.08.2015 13:52

body onload = window.onload , если я не ошибаюсь.
Лупить имеете ввиду через setInterval() ?

tsigel 31.08.2015 13:54

Цитата:

Сообщение от qwe88
Лупить имеете ввиду через setInterval() ?

Да.
А DOMContentLoaded тож низя?

qwe88 31.08.2015 14:09

Цитата:

Сообщение от tsigel (Сообщение 386696)
Да.
А DOMContentLoaded тож низя?

В принципе альтернатива. Спасибо!
Но хотелось бы на будущее понимать, есть ли решение данной задачи

caetus 31.08.2015 19:01

может дождись загрузки DOM потом через window.onload встав div и вызови функцию

tsigel 31.08.2015 21:05

qwe88,
Вообще DOMContentLoaded - это просто нативный вариант $(document).ready(...), в любом случае перед манипуляциями с домом надо дождаться пока догрузится хтмл. Самый простой способ - скрипты вниз, если скрипты в head, то DOMContentLoaded.

forwardonly2015 01.09.2015 04:32

<html>

<head>
<meta charset="utf-8">

</head>

<body>

<div id="container"></div>


<script>


div=document.createElement("div")
div.innerHTML="foo"

observer=new MutationObserver(function(mutations){
  mutations.forEach(function(mutation){if(mutation.target.id==="container") alert("my script is running")})
})


observer.observe(container, {childList: true})
setTimeout(function(){container.appendChild(div)}, 3000)


</script>
</body>
</html>


Часовой пояс GMT +3, время: 03:09.