Tablesorter排序外部点击链接

时间:2017-10-23 12:30:26

标签: javascript jquery sorting tablesorter

我正在使用 var sorting = [[2,"n"]]; 从链接tablesorter成功排序outside the table表格。单击该链接会以相反的方式对表进行排序(例如,从ASC到DESC)。

如何通过第3列升序对表进行排序,而不会再次单击链接而无法在相反方向排序? var sorting = [[2,"a"]]; 会对表格进行升序排序,但我无法再次点击该链接以向相反方向排序!

感谢您的帮助!

这些是我的界限:

$("#trigger-tg").click(function() { 
    // set sorting column and direction, this will sort on the first and third column the column index starts at zero 
    var sorting = [[2,"n"]]; 
    // sort on the first column 
    $("table").trigger("sorton",[sorting]); 
    // return false to stop default link action 
    return false; 
});

1 个答案:

答案 0 :(得分:0)

您问题中的tablesorter链接指向原始的tablesorter,但代码链接和示例来自我的fork of tablesorter,其中包括传递" n"对" next"中的列进行排序方向。

您共享的代码示例可以正常运行 - see demo

$(function() {

  var $table = $("table");
  $table.tablesorter();

  $("#trigger-tg").click(function() {
    $table.trigger("sorton", [[[2, "n"]]]);
    return false;
  });

});

以下是显示所有可能设置的文档页面 - https://mottie.github.io/tablesorter/docs/example-trigger-sort.html

如果必须使用原始的tablesorter,请尝试this demo中的代码。

更新:要通知用户其他点击次数会改变排序,请尝试使用此代码(demo

HTML

<p>Sort Animals column from <a id="trigger-tg" href="#">A-Z</a>.</p>

脚本

$(function() {

  var $table = $("table"),
    targetColumn = 2;
  $table
    .on("sortEnd", function() {
      var c = this.config;
      if (c.sortList[0][0] === targetColumn) {
        $("#trigger-tg").text(c.sortList[0][1] === 0 ? "Z-A" : "A-Z");
      }
    })
    .tablesorter();

  $("#trigger-tg").click(function() {
    $table.trigger("sorton", [[[targetColumn, "n"]]]);
    return false;
  });

});