Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2010, 11:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Как отследить появление элемента на странице?
Есть динамически подгружаемый контент, скажем div после того как он загрузился надо изменить его содержимое, если бы надо было навесить клики можно отслеживать event.target документа или использовать jQuery.live, а как быть в данном случае?
Самое простое что пришло в голову ))) добавляю картинку в конец дива и у неё в onload="foo(this.parentNode)", функция foo изменяет содержимое div и заодно удаляет картинку, хотя она практически и так не видна, используеться картинка минимального размера.
Буду рад если кто предложит иное решение.
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2010, 12:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Само на страницу ничего не добавляется. Там где вы обновляете этот кусок страницы, там и вызывайте нужные действия.
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2010, 12:07
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

рони,
никогда не понимал такие вопроссы=)
Сами по себе элементы не появятся же, ихнее появление в любом случае производит какой-то код, так поменяйте его так что бы при появлении чего-то выполнялись необходимые вам задачи.
__________________
.
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2010, 12:37
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2010, 15:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Спасибо всем ответившим ....
Ответить с цитированием
  #6 (permalink)  
Старый 19.03.2014, 18:58
Новичок на форуме
Отправить личное сообщение для Yorks Посмотреть профиль Найти все сообщения от Yorks
 
Регистрация: 19.03.2014
Сообщений: 2

по сути нмкто не ответил. Для тех, кто говорит что задача не имеет смысла, приведу пример задачи, с которой столкнуляся лично я.
Нужно добавть атрибут on click на элемент, появляющийся в модальном окне с неизвесьной задержкой без достпа к исходному коду при помощи дополнительного js и при этом добавить в атрибут еще и переменную get , что возводит задачу в новую степень. Скажу сразу, что jq delay уже пробовал, не спасает. Так что вместо того, чтобы говорить о бесполезности вопроса, лучше реально бы разобрались в задаче.
Ответить с цитированием
  #7 (permalink)  
Старый 19.03.2014, 19:43
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Нет тут абсолютно никакой проблемы. Библиотеки для работы с ajax обычно имеют возможность простановки колбэка на загрузку - ставим и радуемся.
Ответить с цитированием
  #8 (permalink)  
Старый 19.03.2014, 20:27
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

и всегда можно запустить таймер. проверяя есть ли элемент (загружен ли он)
Ответить с цитированием
  #9 (permalink)  
Старый 19.03.2014, 20:54
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Зачем использовать такое некрасивое решение, как таймеры, когда XMLHttpRequest предоставляет возможность простановки коллбеков?)

Последний раз редактировалось Erolast, 19.03.2014 в 20:56.
Ответить с цитированием
  #10 (permalink)  
Старый 19.03.2014, 21:23
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Erolast
Зачем использовать такое некрасивое решение, как таймеры
Иногда без них не обойтись. К примеру загрузка флеш
Далее по таймеру можно и подгружать контент(отложенная загрузка)
И с чего вы взяли XMLHttpRequest, где он в этой теме упоминается. Выдумываете себе новые задачи? Или считаете его единственным методом подгрузки контента
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить присутствует ли на странице заданный объект? nick Общие вопросы Javascript 7 18.12.2010 19:16
Как поменять местами элементы в дереве элемента родителя? rar11 Events/DOM/Window 8 01.04.2009 18:53
как запустить функцию JavaScript maydep Общие вопросы Javascript 8 26.03.2009 06:17
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03
как определить позицию элемента относительно окна scuter Events/DOM/Window 5 07.05.2008 18:47