我使用下面的Jquery来计算表更改后的表列总数。 即使我手动应用搜索过滤器,这也能正常工作。
但是,当我使用下面的代码时,搜索过滤器会根据结果进行调整并显示,但总数不会更新/计数。
Jquery,表格更改:
$("table").change(function(){
var element = $(this),
footer = element.find('tfoot tr'),
dataRows = element.find('tbody tr:visible'),
initialTotal = function () {
var column, total;
//for (column = 1; column < footer.children().size(); column++) {
for (column = 3; column < 4; column++) {
total = 0;
dataRows.each(function () {
var row = $(this);
total += parseFloat(row.children().eq(column).text());
});
footer.children().eq(column).text(total);
};
};
initialTotal();
});
Jquery点击更改过滤器:
$(".warningdisplay").click(function(){
var cols=[]
cols[5] = "3";
$('table').trigger('search', [cols]);
});
我不明白为什么总数不起作用,因为当手动设置过滤器时它起作用,并且表格也被更改,因此它应该执行该功能。
我出错了什么?
答案 0 :(得分:0)
表的'change'事件由tablesorter-widget定义。该事件不是一般化的DOM突变事件,而是由窗口小部件放置的其他东西触发,特别是通过过滤器菜单。
如果你想要一些外部事件,比如点击你的计算器按钮,触发表的'更改'处理程序,那么我猜你可以明确地触发事件。
这样的事情应该这样做:
$(".warningdisplay").click(function() {
var cols = []
cols[5] = "3";
$('table')
.trigger('search', [cols])
.trigger('change');
});