08.12.2010, 11:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
Как отследить появление элемента на странице?
Есть динамически подгружаемый контент, скажем div после того как он загрузился надо изменить его содержимое, если бы надо было навесить клики можно отслеживать event.target документа или использовать jQuery.live, а как быть в данном случае?
Самое простое что пришло в голову ))) добавляю картинку в конец дива и у неё в onload="foo(this.parentNode)", функция foo изменяет содержимое div и заодно удаляет картинку, хотя она практически и так не видна, используеться картинка минимального размера.
Буду рад если кто предложит иное решение.
|
|
08.12.2010, 12:06
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Само на страницу ничего не добавляется. Там где вы обновляете этот кусок страницы, там и вызывайте нужные действия.
|
|
08.12.2010, 12:07
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
рони,
никогда не понимал такие вопроссы=)
Сами по себе элементы не появятся же, ихнее появление в любом случае производит какой-то код, так поменяйте его так что бы при появлении чего-то выполнялись необходимые вам задачи.
__________________
.
|
|
08.12.2010, 12:37
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Если я правильно понял:
<script type="text/javascript">
window.onload = function(){
var element = document.getElementsByTagName('div')[0];
element.appendChild(document.createElement('p')); //добавляем новый элемент P в DIV
var children = element.childNodes, i = children.length;
if(element.hasChildNodes()){ //проверяем дочернии элементы DIV
while(i--){
alert(children[i].tagName);
}
}
while(element.firstChild){ //удаляем дочернии элемент P
element.removeChild(element.firstChild);
alert(document.getElementsByTagName('p')[0]);
}
};
</script>
<div></div>
Последний раз редактировалось monolithed, 08.12.2010 в 13:23.
|
|
08.12.2010, 15:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
Спасибо всем ответившим ....
|
|
19.03.2014, 18:58
|
Новичок на форуме
|
|
Регистрация: 19.03.2014
Сообщений: 2
|
|
по сути нмкто не ответил. Для тех, кто говорит что задача не имеет смысла, приведу пример задачи, с которой столкнуляся лично я.
Нужно добавть атрибут on click на элемент, появляющийся в модальном окне с неизвесьной задержкой без достпа к исходному коду при помощи дополнительного js и при этом добавить в атрибут еще и переменную get , что возводит задачу в новую степень. Скажу сразу, что jq delay уже пробовал, не спасает. Так что вместо того, чтобы говорить о бесполезности вопроса, лучше реально бы разобрались в задаче.
|
|
19.03.2014, 19:43
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Нет тут абсолютно никакой проблемы. Библиотеки для работы с ajax обычно имеют возможность простановки колбэка на загрузку - ставим и радуемся.
|
|
19.03.2014, 20:27
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
и всегда можно запустить таймер. проверяя есть ли элемент (загружен ли он)
|
|
19.03.2014, 20:54
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Зачем использовать такое некрасивое решение, как таймеры, когда XMLHttpRequest предоставляет возможность простановки коллбеков?)
Последний раз редактировалось Erolast, 19.03.2014 в 20:56.
|
|
19.03.2014, 21:23
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Сообщение от Erolast
|
Зачем использовать такое некрасивое решение, как таймеры
|
Иногда без них не обойтись. К примеру загрузка флеш
Далее по таймеру можно и подгружать контент(отложенная загрузка)
И с чего вы взяли XMLHttpRequest, где он в этой теме упоминается. Выдумываете себе новые задачи? Или считаете его единственным методом подгрузки контента
|
|
|
|