Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отловить событие изменения элемента (https://javascript.ru/forum/events/3285-otlovit-sobytie-izmeneniya-ehlementa.html)

pavl 03.04.2009 16:09

Отловить событие изменения элемента
 
Всем здрасте.
Дано:
Материнская страница куда с помощью AJAX в <div> приходит сформированная из БД таблица.
Задача: отловить событие когда эта таблица загрузится в материнскую страницу и назначить на это событие функцию.

З.Ы. onpropertychange работает только в IE

Какие будут предложения-соображения?

x-yuri 03.04.2009 21:31

а как делается ajax-запрос?

pavl 13.04.2009 11:33

Вот так:
 
function sendRequest(file, _resultId, getRequestProc, pre)
{
resultId=_resultId
httpRequest.open('get', file);
httpRequest.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");
httpRequest.onreadystatechange = getRequestProc;
httpRequest.send(null);
}

function getRequest()
{
if (httpRequest.readyState == 4)
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}

Riim 13.04.2009 11:59

Цитата:

Сообщение от pavl
таблица загрузится в материнскую страницу

т. е. когда таблица уже впишется в страницу или когда будет доступен responseText?

Цитата:

Сообщение от pavl
onpropertychange работает только в IE

Вообще первый раз о таком свойстве слышу. Где вы его откопали?

Судя по коду httpRequest - глобальная переменная. Как вы собираетесь делать несколько запросов одновременно?

Цитата:

Сообщение от pavl
= httpRequest.responseText;

Может стоит заменить на responseXML.

pavl 13.04.2009 12:36

2 Riim:
"т. е. когда таблица уже впишется в страницу или когда будет доступен responseText?"

-думаю что не имеет значения

"Вообще первый раз о таком свойстве слышу."

-Все когда-то бывает в первый раз

"Как вы собираетесь делать несколько запросов одновременно?"

- такой задачи нет

"Может стоит заменить на responseXML."

-зачем?

Riim 13.04.2009 12:51

Цитата:

Сообщение от pavl
думаю что не имеет значения

чем тогда getRequest не устраивает.

Цитата:

Сообщение от pavl
зачем?

Да в общем то без разницы.

Kolyaj 13.04.2009 12:53

Что мешает вызывать callback-функцию при завершении запроса?

Kolyaj 13.04.2009 12:54

Цитата:

Сообщение от Riim
Да в общем то без разницы.

Есть разница: responseXML нафик никому не нужен, кроме фанатиков XML, которые сами не могут объяснить зачем они его используют где попало.

Riim 13.04.2009 12:55

Цитата:

Сообщение от Kolyaj
Что мешает вызывать callback-функцию при завершении запроса?

getRequest как раз и вызывается.

Kolyaj 13.04.2009 13:04

Цитата:

Сообщение от Riim
getRequest как раз и вызывается.

Я имел в виду функцию, которая и будет делать все нужное после добавления таблицы.

Цитата:

Сообщение от Riim
если на клиенте ничего не меняется, то зачем тогда сервер отдает text/xml а не text/plain.

Здесь нет ни строчки серверного кода. Если вы про эту
Цитата:

Сообщение от pavl
httpRequest.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");

то она абсолютно бессмысленна, не обращайте на нее внимания. :)


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