我试图将数据附加到带有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/
答案 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。