我有一個插件顯示/隱藏表中的列。jQuery監視器表的更改?
但是我也在桌子上使用了其他幾個插件,因此這個桌子是非常動態的。
我正在尋找一種方法來監視表的每當發生什麼事情。
例如,
行添加,行被刪除,行是隱藏...
有一般.change()
事件的任何DOM元素?
我有一個插件顯示/隱藏表中的列。jQuery監視器表的更改?
但是我也在桌子上使用了其他幾個插件,因此這個桌子是非常動態的。
我正在尋找一種方法來監視表的每當發生什麼事情。
例如,
行添加,行被刪除,行是隱藏...
有一般.change()
事件的任何DOM元素?
您可以使用livequery檢測時行已添加/刪除:
$("tr").livequery(function() {
console.log($(this) + " was added");
}, function() {
console.log($(this) + " was removed");
});
你可以綁定到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'));
});
當然,你的元素將不得不被賦予標識符以使其有用。
不幸的是,沒有一個操縱DOM的跨瀏覽器更改事件。你有幾個選擇:
只是一些信息:http://jupiterjs.com/news/why-you-should-never-use-jquery-live – 2011-04-26 01:26:36
@Jared我知道木星的傢伙知道他們在說什麼,但是,我認爲這篇文章有點煽動性。從標題看,我期待他們說它有一個巨大的安全漏洞,但事實證明,它只是比較慢,並不像'.delegate()'那樣可以重複使用, .live()'和'.livequery()'可以。 – 2011-04-26 01:31:48
@blowski - 真的,這就是爲什麼我說「只是一些信息」。如在「考慮」中。 ;) – 2011-04-26 01:35:18