|
|
|
| Здраствуйте.
Возможно ли как-нибудь узнать, что в определенном элементе изменились его дочерние узлы.
Т.е. типа такого:
document.getElementById('elem').onchange = function() {
alert('change');
}
...
document.getElementById('elem').innerHTML = "";
|
Или такого нельзя узнать? | |
|
|
|
|
|
|
|
для: AntonE
(17.10.2008 в 13:01)
| | если просто узнать, не изменились ли теги и текст, то примерно так:
document.getElementById('elem').onchange=function(){
if(elem_value==document.getElementById('elem').innerHTML)alert("no");
else alert("yes");
}
var elem_value=document.getElementById('elem').innerHTML;
document.getElementById('elem').innerHTML="";
|
а если надо узнать, не изменились ли атрибуты и свойства, то это уже сложнее | |
|
|
|
|
|
|
|
для: вялый
(17.10.2008 в 13:40)
| | А у Вас этот код работает?
У меня нет. Ни в опере, ни в ие, ни в фф.
Да и к тому же, зачем сохранять и затем проверять document.getElementById('elem')?
Ведь, по идеи
document.getElementById('elem').onchange=function() {
...
}
|
начнет выполняться только в том случае, когда document.getElementById('elem') изменится.
Точнее, код начал бы выполняться, если бы такая конструкция была бы возможна.
Я в книжке по яваскрипту поглядел, там не указано, что можно использовать события onchange или change на document; onclick, onload и прочие есть, а вот событий на изменения - нет.
Но может можно хоть как-нибудь это узнать? | |
|
|
|
|
|
|
|
для: AntonE
(17.10.2008 в 13:01)
| | Напрямую навесить какую-то функцию на родительский узел, чтобы эта функция срабатывала при изменении текста/свойств дочерних элементов, можно только в одном браузере - в Эксплорере. Ибо в нём практически для всех тегов поддерживается событие ONPROPERTYCHANGE. Во всех прочих браузерах - напрямую не получится.
Для прочих браузеров решение может быть только "кривым" :-)
Например, через тайм-аут проверяется состояние дочерних элементов и сравниваются текущие параметры (интересующие вас свойства или текст) с их состоянием в предыдущий момент времени. | |
|
|
|
|
|
|
|
для: PAT
(17.10.2008 в 15:35)
| | Не, кривые решения не нужны. :)
Просто думал, может есть какой простой способ отследить измения дочерних элементов.
Спасибо за ответы. | |
|
|
|