我有一个插件显示/隐藏表中的列。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