为什么AJAX响应不是可排序的

我使用sorttable.js进行表排序,我的表每3秒更新一次ajax响应,但响应不按照我预期的方式排序。

索引页面

  
PersonMonthly pay
Jan Molby£12,000
Steve Nicol£8,500
Steve McMahon£9,200
John Barnes£15,300
TOTAL£45,000
Append new table data

ajax响应是:

 
PersonMonthly pay
prabha Molby£12,000
abcd Nicol£8,500
steev McMahon£9,200
John Barnes£15,300
TOTAL£55,000

JavaScript的

  $(function() { $("#ajax-append").click(function() { setInterval(function() { var request = $.get("assets/replacecontent.jsp", function(html) { alert(html); $('#resDiv').html(html); var newTableObject = document.getElementById("myTable"); alert(newTableObject); sorttable.makeSortable(newTableObject); // alert($("#myTable").length); }); }, 3000); }); }); 

现在,如果任何时候我对ajax响应进行排序它会被排序但是在另一个响应之后它再次改变它的顺序,但我希望它按前一个排序。

我想你应该已经阅读了sorttable.js常见问题所说的内容:

在加载页面时对表进行排序

很多人问,“如何在第一次加载页面时对表格进行排序?” 答案是:你没有。 Sorttable是关于在没有页面刷新的情况下更改从服务器提供的HTML。 当首次从服务器提供页面时,您必须等待它被提供服务。 因此,如果您希望在首次显示页面时对表进行排序,请按排序顺序提供表。 表通常来自数据库; 通过SQL中的ORDER BY子句以排序顺序从数据库中获取数据。 任何涉及您在页面加载时(即没有用户输入)运行排序表的解决方案都是错误的解决方案。

但他们也提出了一个解决方案 :

 //Find the TH you want to use, maybe you can store that using an event handler before var myTH = document.getElementsByTagName("th")[0]; //Then sort it sorttable.innerSortFunction.apply(myTH, []); 

但是,您必须找到用户之前点击的列,并且说实话我没有找到任何方式直接使用sorttable api。 也许使用某种点击事件处理程序并存储最后点击的th。