我正在使用HTML表格。我的需求是,我想监听行数的变化。有什么方法可以实现这一点吗?
注意:我没有添加/删除行的功能。
此外,我已经尝试过这个:
$("#myTable>tbody>tr").watch("length", function () {
alert("row count changed..")
});
但是,上面的代码对我不起作用。你们中有谁知道如何做吗?
提前感谢,
-Raja.
var numberOfRows = $("#myTable>tbody>tr").length;
$("#myTable").bind("DOMSubtreeModified", function() {
if($("#myTable>tbody>tr").length !== numberOfRows){
numberOfRows = $("#myTable>tbody>tr").length;
alert("row count changed..");
}
});
setInterval(function() {
var $t = $("#myTable"),
rowCount = $t.data("rowCount"),
rowLength = $t.find("tbody").children().length;
if (rowCount && rowCount !== rowLength) {
$t.trigger("rowcountchanged").data("rowCount", rowLength);
}
else if (!rowCount) {
$t.data("rowCount", rowLength);
}
}, 50);
$("#myTable").on("rowcountchanged",function(){
alert($(this).data("rowCount"));
});
var rowCount = $("#gridid>tbody>tr").length;
jQuery("#gridid").jqGrid({
...
refresh: function(){
var currCount = $("#gridid>tbody>tr").length;
if (currCount !== rowCount) {
alert("Number of rows changed!");
rowCount = currCount;
}
},
...
});
如果您在点击时手动删除任何行,则需要在那里运行您的代码,除非它也重新加载网格。
我曾经用计时器做过这件事。虽然不太美观,但我认为它在几乎所有浏览器中都能正常工作...
var html;
setInterval(function() {
var table = $('table');
if($('table').html() != html){
alert('Changed!');
html = $('table').html();
}
}, 500);
http://www.w3.org/TR/DOM-Level-2-Events/events.html — 你可以使用这个链接。但是目前IE浏览器还没有实现或者填充。
同时你可以通过计时器来运行函数以检查TR计数。
DOMNodeInserted
,但你应该直接指定或链接到文档中的锚点。整个 DOM 事件规范的上下文对此毫无帮助。 - Chris Pratt
watch("length")
代码)。 - Chris Pratt.watch
不是 jQuery 的方法。你从哪里得到它的? - Kevin B