触发器不工作后的Jquery

时间:2015-01-18 21:28:00

标签: jquery

我使用下面的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]);

});

我不明白为什么总数不起作用,因为当手动设置过滤器时它起作用,并且表格也被更改,因此它应该执行该功能。

我出错了什么?

1 个答案:

答案 0 :(得分:0)

表的'change'事件由tablesorter-widget定义。该事件不是一般化的DOM突变事件,而是由窗口小部件放置的其他东西触发,特别是通过过滤器菜单。

如果你想要一些外部事件,比如点击你的计算器按钮,触发表的'更改'处理程序,那么我猜你可以明确地触发事件。

这样的事情应该这样做:

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