Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли узнать, изменились ли в элементе его дочернии узлы.
 
 автор: AntonE   (17.10.2008 в 13:01)   письмо автору
 
 

Здраствуйте.
Возможно ли как-нибудь узнать, что в определенном элементе изменились его дочерние узлы.
Т.е. типа такого:
document.getElementById('elem').onchange = function() {
  alert('change');
}

...

document.getElementById('elem').innerHTML = "";

Или такого нельзя узнать?

  Ответить  
 
 автор: вялый   (17.10.2008 в 13:40)   письмо автору
 
   для: 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="";

а если надо узнать, не изменились ли атрибуты и свойства, то это уже сложнее

  Ответить  
 
 автор: AntonE   (17.10.2008 в 15:30)   письмо автору
 
   для: вялый   (17.10.2008 в 13:40)
 

А у Вас этот код работает?
У меня нет. Ни в опере, ни в ие, ни в фф.
Да и к тому же, зачем сохранять и затем проверять document.getElementById('elem')?
Ведь, по идеи
document.getElementById('elem').onchange=function() { 
  ...
}

начнет выполняться только в том случае, когда document.getElementById('elem') изменится.
Точнее, код начал бы выполняться, если бы такая конструкция была бы возможна.
Я в книжке по яваскрипту поглядел, там не указано, что можно использовать события onchange или change на document; onclick, onload и прочие есть, а вот событий на изменения - нет.
Но может можно хоть как-нибудь это узнать?

  Ответить  
 
 автор: PAT   (17.10.2008 в 15:35)   письмо автору
 
   для: AntonE   (17.10.2008 в 13:01)
 

Напрямую навесить какую-то функцию на родительский узел, чтобы эта функция срабатывала при изменении текста/свойств дочерних элементов, можно только в одном браузере - в Эксплорере. Ибо в нём практически для всех тегов поддерживается событие ONPROPERTYCHANGE. Во всех прочих браузерах - напрямую не получится.

Для прочих браузеров решение может быть только "кривым" :-)
Например, через тайм-аут проверяется состояние дочерних элементов и сравниваются текущие параметры (интересующие вас свойства или текст) с их состоянием в предыдущий момент времени.

  Ответить  
 
 автор: AntonE   (17.10.2008 в 16:47)   письмо автору
 
   для: PAT   (17.10.2008 в 15:35)
 

Не, кривые решения не нужны. :)
Просто думал, может есть какой простой способ отследить измения дочерних элементов.
Спасибо за ответы.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования