Таблица мониторинга jQuery для изменения? - PullRequest
1 голос
/ 26 апреля 2011

У меня есть плагин, который показывает / скрывает столбцы в таблице.

Однако я также использую несколько других плагинов в таблице, поэтому таблица довольно динамична.

Я ищуспособ следить за таблицей, когда что-то с ней происходит.

Например,

добавляются строки, строки удаляются, строки скрываются ...

есть лиобщее .change() событие для любого элемента dom?

Ответы [ 3 ]

4 голосов
/ 26 апреля 2011

Вы можете привязать к событиям DOM:

$(document).ready(function(){
    $(document).bind('DOMNodeInserted', function(event){
        console.log('inserted '+event.target.nodeName + ', parent: '+event.relatedNode.getAttribute('id'));
    });
    $(document).bind('DOMNodeRemoved', function(event){
        console.log('removed');
    });
    $(document).bind('DOMSubtreeModified', function(event){
        console.log('modified '+event.target.getAttribute('id'));
    });

    $('#tbl').append($('<tr></tr>').
                    attr('id', 'newrow'));
});

Скрипка здесь

Конечно, вашим элементам должны быть присвоены идентификаторы, чтобы это вообще пригодилось.

2 голосов
/ 26 апреля 2011

К сожалению, для манипулирования DOM нет события кросс-браузерного изменения.У вас есть пара вариантов:

  1. Используйте функции, которые управляют таблицей, чтобы также выполнять ваши другие действия.
  2. Создайте систему паба / подсистемы для публикации и подписки на вашу собственную таблицусобытия.
2 голосов
/ 26 апреля 2011

Вы можете использовать livequery , чтобы определить, когда строки были добавлены / удалены:

$("tr").livequery(function() {
  console.log($(this) + " was added");
}, function() {
  console.log($(this) + " was removed");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...