Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery监视表的更改?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript jQuery监视表的更改?

Javascript jQuery监视表的更改?,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个插件,可以显示/隐藏表中的列 然而,我还在表上使用了其他几个插件,因此表是动态的 我正在寻找一种方法来监视表,以防它发生什么情况 例如 行被添加,行被删除,行被隐藏 是否存在任何dom元素的常规.change()事件?可以用于检测何时添加/删除行: $("tr").livequery(function() { console.log($(this) + " was added"); }, function() { console.log($(this) + " was remov

我有一个插件,可以显示/隐藏表中的列

然而,我还在表上使用了其他几个插件,因此表是动态的

我正在寻找一种方法来监视表,以防它发生什么情况

例如

行被添加,行被删除,行被隐藏

是否存在任何dom元素的常规
.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抱歉,这不是对你的批评,只是对帖子本身的回应。这是一个有效的评论,有一个有用和相关的链接。