0

从我读到的文档filter_functions中,可以按如下方式使用:

filter_functions: {
        // Add these options to the select dropdown (regex example)
        2 : {
          "A - D" : function(e, n, f, i) { return /^[A-D]/.test(e); },
          "E - H" : function(e, n, f, i) { return /^[E-H]/.test(e); },
          "I - L" : function(e, n, f, i) { return /^[I-L]/.test(e); },
          "M - P" : function(e, n, f, i) { return /^[M-P]/.test(e); },
          "Q - T" : function(e, n, f, i) { return /^[Q-T]/.test(e); },
          "U - X" : function(e, n, f, i) { return /^[U-X]/.test(e); },
          "Y - Z" : function(e, n, f, i) { return /^[Y-Z]/.test(e); }
        }
      }

这为第三列创建了一个自定义过滤器功能。我想知道是否可以指定一个选择器,例如.columnWithCoolFilteFunction而不是列号?

原因是我有多个表,其中一些列包含相似的数据 - 因此应该以相同的方式过滤 - 但列号可能在一个表中为 1,在另一个表中为 5。

我知道一种解决方案是使用自己的选项启动每个表,但我真的很喜欢以相同的方式启动每个表(更少的代码,耶!)。

可能的?

4

1 回答 1

1

现在这是不可能的,但我确实有同样的想法!您可以跟踪此问题何时实施。

但与此同时,您可以做的是在初始化表之前设置过滤器对象:

var alphabetical = {
    "A - D" : function(e, n, f, i) { return /^[A-D]/.test(e); },
    "E - H" : function(e, n, f, i) { return /^[E-H]/.test(e); },
    "I - L" : function(e, n, f, i) { return /^[I-L]/.test(e); },
    "M - P" : function(e, n, f, i) { return /^[M-P]/.test(e); },
    "Q - T" : function(e, n, f, i) { return /^[Q-T]/.test(e); },
    "U - X" : function(e, n, f, i) { return /^[U-X]/.test(e); },
    "Y - Z" : function(e, n, f, i) { return /^[Y-Z]/.test(e); }
};

$("table").tablesorter({
    widgetOptions : {
        filter_functions: {
            0 : alphabetical
            2 : alphabetical
        }
    },
    // other options
});

是的,在此之前您必须分别初始化每个表 =(

于 2013-05-15T19:40:07.540 回答