Javascript jQuery监视表的更改?
我有一个插件,可以显示/隐藏表中的列 然而,我还在表上使用了其他几个插件,因此表是动态的 我正在寻找一种方法来监视表,以防它发生什么情况 例如 行被添加,行被删除,行被隐藏 是否存在任何dom元素的常规Javascript jQuery监视表的更改?,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个插件,可以显示/隐藏表中的列 然而,我还在表上使用了其他几个插件,因此表是动态的 我正在寻找一种方法来监视表,以防它发生什么情况 例如 行被添加,行被删除,行被隐藏 是否存在任何dom元素的常规.change()事件?可以用于检测何时添加/删除行: $("tr").livequery(function() { console.log($(this) + " was added"); }, function() { console.log($(this) + " was remov
.change()
事件?可以用于检测何时添加/删除行:
$("tr").livequery(function() {
console.log($(this) + " was added");
}, function() {
console.log($(this) + " was removed");
});
您可以使用检测何时添加/删除行:
$("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'));
});
$(文档).ready(函数(){
$(文档).bind('domandeinserted',函数(事件){
console.log('inserted'+event.target.nodeName+',父项:'+event.relatedNode.getAttribute('id');
});
$(文档).bind('DOMNodeRemoved',函数(事件){
console.log('removed');
});
$(document).bind('domsubtreemedited',函数(事件){
console.log('modified'+event.target.getAttribute('id'));
});
$('#tbl')。追加($('')。
attr('id','newrow'));
});
当然,必须为元素提供标识符才能使其发挥作用。您可以绑定到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'));
});
$(文档).ready(函数(){
$(文档).bind('domandeinserted',函数(事件){
console.log('inserted'+event.target.nodeName+',父项:'+event.relatedNode.getAttribute('id');
});
$(文档).bind('DOMNodeRemoved',函数(事件){
console.log('removed');
});
$(document).bind('domsubtreemedited',函数(事件){
console.log('modified'+event.target.getAttribute('id'));
});
$('#tbl')。追加($('')。
attr('id','newrow'));
});
当然,必须为元素提供标识符才能使其发挥作用。不幸的是,没有跨浏览器更改事件来操作DOM。您有两个选择:
不幸的是,没有跨浏览器更改事件来操作DOM。您有两个选择:
这些事件不是Firefox特有的吗?@eli:no-这些事件是常见的w3c事件(只是在Chrome中尝试了小提琴)。还有一些被定义为特定于Mozilla的,但这些不在该列表中。但是,我们都知道IE不遵循w3c事件,因此该代码在那里不起作用。@eli:不幸的是,这是真的(刚刚尝试过)。。嘎。微软什么时候会放弃购买浏览器,而不是继续落后于其他公司几年呢P@Demian布莱希特-即使是在IE9中?这些事件不是特定于Firefox吗?@eli:no-这些事件是常见的w3c事件(只是在Chrome中尝试了小提琴)。还有一些被定义为特定于Mozilla的,但这些不在该列表中。但是,我们都知道IE不遵循w3c事件,因此该代码在那里不起作用。@eli:不幸的是,这是真的(刚刚尝试过)。。嘎。微软什么时候会放弃购买浏览器,而不是继续落后于其他公司几年呢P@Demian布莱希特-即使在IE9中?只是一些信息:@Jared我知道Jupiter的人知道他们在说什么,但我认为这篇文章有点煽动性。从标题上看,我希望他们说它有一个巨大的安全漏洞,但事实证明,这只是因为它比
.delegate()
更慢,而且不能像.live()
和.livequery()
那样重复使用。@blowski-True,这就是为什么我说“只是一些信息”。如“考虑”;)@Jared抱歉,这不是对你的批评,只是对帖子本身的回应。这是一个有效的评论,有一个有用且相关的链接。只是一些信息:@Jared我知道Jupiter的人知道他们在说什么,但我认为这篇文章有点煽动性。从标题上看,我希望他们说它有一个巨大的安全漏洞,但事实证明,这只是因为它比.delegate()
更慢,而且不能像.live()
和.livequery()
那样重复使用。@blowski-True,这就是为什么我说“只是一些信息”。如“考虑”;)@Jared抱歉,这不是对你的批评,只是对帖子本身的回应。这是一个有效的评论,有一个有用和相关的链接。