jquery tablesorter过滤器 - 如何计算过滤的行

Nar*_*ana 4 javascript jquery tablesorter jquery-plugins

我正在使用jQuery插件jquery-tablesorter-filter.它很棒.当我想要计算表被过滤后的行数时,我有问题.

$("#tblContainer").tablesorter({
    debug: false,
    sortList: [
        [0, 0]
    ],
    widgets: ['zebra']

}).tablesorterFilter({
    filterContainer: $("#filterBox"),
    filterColumns: [1, 2],
    filterCaseSensitive: false
});
Run Code Online (Sandbox Code Playgroud)

这是计算过滤行(当前在屏幕上的行)的代码.但它没有给我正确的结果.它给出了过滤行的最后计数,而不是当前计数.它总是给出一个键击的结果.

$("#filterBox").keyup(function () {

    var textLength = $("#filterBox").val().length;

    if (textLength > 0) {

        var rowCount = $("#tblContainer tr:visible").length;

        $("#countCourseRow").html(" found " + rowCount);
    } else {
        $("#countCourseRow").html("");
    }

});
Run Code Online (Sandbox Code Playgroud)

Fre*_*son 7

内置事件有什么问题:http://mottie.github.com/tablesorter/docs/example-option-show-processing.html

示例如下所示:

$("#tblContainer").tablesorter({
debug: false,
sortList: [
  [0, 0]
],
widgets: ['zebra']
}).bind('filterEnd', function() {
  $("#countCourseRow").html("");
  $("#countCourseRow").html("found " + $('#myTable tr:visible').length);
});
Run Code Online (Sandbox Code Playgroud)


Sal*_*Sal 0

只需编辑 tablesorterFilter js 文件即可添加回调函数:

在第 147 行即将return table;结束之前添加此内容doFilter()

if (jQuery.isFunction(filter.callback)){
      filter.callback();
}
Run Code Online (Sandbox Code Playgroud)

然后改变这个:

     this.defaults = {
        filterContainer: '#filter-box',
        filterClearContainer: '#filter-clear-button',
        filterColumns: null,
        filterCaseSensitive: false,
        filterWaitTime: 500,
        filterFunction: has_words,
        columns: []
      };
Run Code Online (Sandbox Code Playgroud)

      this.defaults = {
        filterContainer: '#filter-box',
        filterClearContainer: '#filter-clear-button',
        filterColumns: null,
        filterCaseSensitive: false,
        filterWaitTime: 500,
        filterFunction: has_words,
        columns: [],
        callback: function(){}
      };
Run Code Online (Sandbox Code Playgroud)

现在你只需要在这里定义你的回调函数

}).tablesorterFilter({
    filterContainer: $("#filterBox"),
    filterColumns: [1, 2],
    filterCaseSensitive: false,
    callback: function(){
         var rowCount = $("#tblContainer tr:visible").length;
         $("#countCourseRow").html(" found " + rowCount);
    }
});
Run Code Online (Sandbox Code Playgroud)

这应该适合你:)