Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Событие при загрузке элемента в DOM (https://javascript.ru/forum/jquery/29123-sobytie-pri-zagruzke-ehlementa-v-dom.html)

see613 15.06.2012 23:03

Событие при загрузке элемента в DOM
 
Подскажите, как отследить момент когда определенный элемент(например div) полностью загружен на странице(со всем содержимым, тоесть картинками, флешем и тд).
Имеется ввиду не аякс, а обычный элемент на странице.
Некоторые люди пишут, что это делается так: $("элемент").ready( fn );
но заглянув во внутрь jquery, становится понятно, что это не так.
Событие load вызываться не хочет, и создается впечатление, что оно относится только к подгружаемым элементам, например изображениям.
Надеюсь, что такое событие есть и мне просто пока неповезло. Заранее спасибо.

Serg_pnz 15.06.2012 23:11

А если отслеживать загрузку всех картинок в div и по callback запускать что надо?

see613 15.06.2012 23:27

ну просто не может быть чтоб такого не было. тем более нужны не только картинки. вообще мне необходимы размеры итогового элемента.

Deff 16.06.2012 12:54

see613,
onload cуществует только для window , фреймов и картинок
мон попробовать извернуться так
<body onload='tstDiv()'>

<!-- Тестируемый DIV -->
<div id=Test_DIV> Тут что-то; </div>



<script type="text/javascript">
//Наша функция
function  MyCallBack (){
  //Тут наша обработка, при окончательных фиксированных  размерах DIV
}


function tstDiv() {
var intervalID //Таймер Id;
var S=''; //Площадь div(a)

function Test(){
   var Sth = $("#Test_DIV").height()*$("#Test_DIV").width();
    if(S != Sth) {S = Sth; return;}
    clearInterval(intervalID) ; MyCallBack () //Размеры не меняются  - Вызываем функцию завершения
}
   intervalID=setInterval('Test()',100)
}

</script>

bot87 16.06.2012 14:45

какие существуют еще способы определения полной загрузки дива :) ??

Deff 16.06.2012 14:51

Цитата:

Сообщение от bot87
какие существуют еще способы определения полной загрузки дива

Та никаких , по-сути, всё определяется вставкой контента, имхо Всовываешь ти в div AЯКС - не факт , что он не начнет подгружацо после body... так что самое верное тестировать либо каждый подгружаемый элемент, либо самый долго подгружаемый, расположенный в самом конце..
Ко всему прочему, данный div может иметь стилевые привязки к родителям, а занчит стабильное состояние может наступить еще позже

bot87 16.06.2012 16:52

жаль.Спасибо за ответ


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