JQuery tablesorter附加数据不排序

时间:2010-12-27 15:16:39

标签: javascript jquery tablesorter

我试图将数据附加到带有tablesorter插件的表中(http://tablesorter.com) 我使用以下代码:

<table id="sortme" border="1" style="width: 200px;">             
<thead>
    <tr>
        <th>first name</th>
        <th>last name</th>
        <th>age</th>
    </tr>
</thead>
<tbody>
       <tr>
          <td>will</td>
          <td>smith</td>
          <td>1</td>
      </tr> 
...................
</tbody>
</table>
<a href="#" id="test">Click me!</a>

$(document).ready(function() {
 var i = 5;
 $("#sortme").tablesorter({
     sortList: [[2,0]]         
 }); 
 $("#test").click(function() {
     $("#sortme tbody").append('<tr><td>NEW</td><td>NEW</td><td>'+(i++)+'</td></tr>');
     $("#sortme").trigger("update");
     var s = [[2,0]];
     $("#sortme").trigger("sorton",[s]);
     return false;
 });
});

问题是附加行保持在最顶层,为什么? 请参阅示例:http://jsfiddle.net/jmU3Z/8/

2 个答案:

答案 0 :(得分:1)

万一其他人偶然发现了这一点。

当处理“sorton”事件时,尚未为DOM分配table.config.parsers。 “sorton”事件处理需要在1毫秒的超时时间内完成。

使用以下内容替换jquery.tablesorter.js(line~803)中现有的“sorton”绑定:

}).bind("sorton", function (e, list) {
    var me = this;
    setTimeout(function () {
        $(this).trigger("sortStart");
        config.sortList = list;
        // update and store the sortlist
        var sortList = config.sortList;
        // update header count index
        updateHeaderSortCount(me, sortList);
        // set css for headers
        setHeadersCss(me, $headers, sortList, sortCSS);
        // sort the table and append it to the dom
        appendToTable(me, multisort(me, sortList, cache));
    }, 1);

答案 1 :(得分:-1)

你的问题是[s]。你的sort参数已经是一个数组,只需传递var而不是数组中的var。

$("#sortme").trigger("sorton",s); 

为我工作,FF4。