触发器后的Jquery不工作

触发器后的Jquery不工作,jquery,Jquery,我使用下面的Jquery计算表更改后的表列总数。 即使我手动应用searchfilter,它也能正常工作 但是,当我使用下面的代码时,searchfilter会根据结果进行调整和显示,但总数不会更新/计数 Jquery,表更改: $("table").change(function(){ var element = $(this), footer = element.find('tfoot tr'), dataRows = element.find('tbody t

我使用下面的Jquery计算表更改后的表列总数。 即使我手动应用searchfilter,它也能正常工作

但是,当我使用下面的代码时,searchfilter会根据结果进行调整和显示,但总数不会更新/计数

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();
});
我不明白为什么总数不起作用,因为当手动设置过滤器时,它起作用,而且表格也发生了变化,所以它应该执行该函数


有什么不对吗?

表的“更改”事件由tablesorter小部件定义。该事件不是一个泛化的DOM突变事件,而是由小部件放置的其他东西触发的,特别是由过滤器菜单触发的

如果您想要一些外部事件(例如单击yout calculator按钮)来触发表的“更改”处理程序,那么我猜您可以显式地触发该事件

像这样的东西应该可以做到:

$(".warningdisplay").click(function() {
    var cols = []
    cols[5] = "3";
    $('table')
        .trigger('search', [cols])
        .trigger('change');
});

你看控制台了吗?使用console进行调试可以简化工作:)是,无错误。使用.trigger时,表会发生更改,但函数table.change不起作用。何时需要更改触发器?当我想在向dom添加内容的同时添加侦听器时,我使用自定义事件。或者,当你添加一个新行时,你可以简单地调用cahnge函数。我需要它。当用户单击菜单中的按钮时,我希望它设置特定的过滤器。我还是不明白。为什么不按一下按钮调用这个函数呢?$('table').trigger('search',[cols])是什么;做
$(".warningdisplay").click(function() {
    var cols = []
    cols[5] = "3";
    $('table')
        .trigger('search', [cols])
        .trigger('change');
});