Javascript 捕获动态更新表中的更改
我有一个动态加载表的页面。我想检查是否有任何Javascript 捕获动态更新表中的更改,javascript,jquery,Javascript,Jquery,我有一个动态加载表的页面。我想检查是否有任何tds包含关键字,并根据该关键字更改一些CSS样式 在第一次加载时,一切正常,但当表中发生更改时,我的函数不会被触发 这是我的密码。第一个街区很好,但第二个街区不行 $( document ).ready(function() { $("tr td:contains('*')").each(function(){ $(this).parent("tr").css({ "background-color": "r
td
s包含关键字,并根据该关键字更改一些CSS样式
在第一次加载时,一切正常,但当表中发生更改时,我的函数不会被触发
这是我的密码。第一个街区很好,但第二个街区不行
$( document ).ready(function() {
$("tr td:contains('*')").each(function(){
$(this).parent("tr").css({ "background-color": "red" });
$(this).parent().children().css({ "background": "inherit" });
});
});
jQuery('body').on('change', '.content', function () {
$("tr td:contains('*')").each(function(){
$(this).parent("tr").css({ "background-color": "red" });
$(this).parent().children().css({ "background": "inherit" });
});
});
使用document.ready包装“更改时”功能
$(function(){
/*code*/
});
使用document.ready包装“更改时”功能
$(function(){
/*code*/
});
如果我理解正确,您正在尝试侦听表本身的更改,这意味着内部html更改、添加行等 不幸的是,您没有看到
更改
事件触发的原因是该事件仅在元素的值
更改时触发;表、行和单元格没有此类属性
从jQuery关于更改事件的文档中,可以找到:
此事件仅限于元素、框和
元素。对于选择框、复选框和单选按钮,
当用户使用进行选择时,会立即触发该事件
鼠标,但对于其他元素类型,事件延迟到
元素失去焦点
它第一次工作的原因当然是因为,您没有将它包装在change
事件中;当on ready功能启动时,它会立即启动。您的选择器工作得很好,当然,表永远不会触发您要查找的事件
我个人并没有这样做过,但在SO上找到的一个解决方案是,建立一种民意调查仪,不断检查是否有任何变化。它还解释了如何设置自定义事件,从而将代码进一步划分为可管理的部分
显然,他们还讨论了使用JQGRID,它有一个刷新事件,你也可以考虑。
希望有帮助
编辑
您还可以使用
MutationObserver
,可以找到它的文档,这看起来是一个很好的例子。在SO示例中,海报表明他们早在IE 7的浏览器上就对其进行了测试,但是根据,MutationObserver本身并不是100%兼容的(可能他使用了polyfill),因此请确保您正确地对其进行了测试。如果我理解正确,您正在尝试侦听表本身的更改,表示内部html更改、添加行等
不幸的是,您没有看到更改
事件触发的原因是该事件仅在元素的值
更改时触发;表、行和单元格没有此类属性
从jQuery关于更改事件的文档中,可以找到:
此事件仅限于元素、框和
元素。对于选择框、复选框和单选按钮,
当用户使用进行选择时,会立即触发该事件
鼠标,但对于其他元素类型,事件延迟到
元素失去焦点
它第一次工作的原因当然是因为,您没有将它包装在change
事件中;当on ready功能启动时,它会立即启动。您的选择器工作得很好,当然,表永远不会触发您要查找的事件
我个人并没有这样做过,但在SO上找到的一个解决方案是,建立一种民意调查仪,不断检查是否有任何变化。它还解释了如何设置自定义事件,从而将代码进一步划分为可管理的部分
显然,他们还讨论了使用JQGRID,它有一个刷新事件,你也可以考虑。
希望有帮助
编辑
您还可以使用MutationObserver
,可以找到它的文档,这看起来是一个很好的例子。在SO示例中,海报表明他们早在IE 7的浏览器上就对其进行了测试,但是根据,MutationObserver
本身不是100%兼容的(可能他使用了polyfill),因此请确保您正确测试它。感谢大家的帮助,我在这里找到了使用自定义构建插件的解决方案:
它对我来说就像一个符咒 感谢大家的帮助,我在这里找到了使用自定义构建插件的解决方案:
它对我来说就像一个符咒 单元格是否实际包含“*”?。内容当然是表单元素,其中值通过选择或键入某个内容而改变?如果您只是尝试筛选出没有内容的元素,那么使用过滤器检查长度会更好。对于煤炭,有包含“*”:)和.content的单元格是table wrapper…如果第二个块内的警报被触发,请尝试在第二个块内的每个
回调中放置警报。这会告诉你你的选择器是否匹配任何东西。如果我把它放在“each”回调中,它会被触发,现在我真的不明白了??单元格是否真的包含“*”?。内容当然是表单元素,其中值通过选择或键入某个内容而改变?如果您只是尝试筛选出没有内容的元素,那么使用过滤器检查长度会更好。对于煤炭,有包含“*”:)和.content的单元格是table wrapper…如果第二个块内的警报被触发,请尝试在第二个块内的每个
回调中放置警报。这将告诉你你的选择器是否匹配任何东西。如果我把它放在“每个”回调中,它会被触发,现在我真的不明白??我试过了,但它没有改变任何东西,问题是我确实发现有东西改变了(如果我放了警报并改变了一些东西,警报会被触发),但其余的代码不起作用。。。和一些代码w