在动态修改的表上使用 jQuery tableSorter

发布于 2024-07-08 06:10:53 字数 161 浏览 8 评论 0原文

我在页面上使用 jQuery tableSorter 插件。

不幸的是,正在排序的表是动态修改的,当我在添加元素后排序时,该元素消失,将表恢复到创建 tableSorter 时的状态。

有什么方法可以强制 tableSorter 重新扫描页面,以便这些新元素正确排序?

I am using the jQuery tableSorter plugin on a page.

Unfortunatley, the table that is being sorted is dynamically modified, and when I sort after adding an element, the element disappears, restoring the table to the state that it was in when the tableSorter was created.

Is there any way that i can force tableSorter to rescan the page so that these new elements are sorted properly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

罪#恶を代价 2024-07-15 06:10:53

我相信您可以使用以下方法触发更新:

$(table).trigger("update")

I believe you can trigger an update using something like:

$(table).trigger("update")
向地狱狂奔 2024-07-15 06:10:53

看来你是对的。

$(table).trigger("update");
$(table).trigger("appendCache");

就可以了。

请注意,tablesorter API 在某些时候发生了变化,因此这些内容以及事件绑定都发生了变化。 我最大的困惑是试图找出为什么有些功能有效而其他功能无效,这是由于插件版本错误,尽管没有明显的区别。

Seems you are correct.

$(table).trigger("update");
$(table).trigger("appendCache");

does the trick.

As a note, the tablesorter API changed at some point, so these things got changed, as well as the event binding. My biggest hangup was trying to figure out why some things worked and others did not, and it was due to having a wrong version of the plugin, despite there being no obvious distinction.

著墨染雨君画夕 2024-07-15 06:10:53

$(table).trigger("update"); 抛出错误

    Uncaught TypeError: Cannot read property 'rows' of undefined 

因此,有一个 jquery 函数 .ajaxStop() 其中 tablesorter() 被调用。 不要在 .ready() 中调用 tablesorter 来

    jQuery(document).ajaxStop(function(){
      jQuery("#table_name").tablesorter();
    })

完成这项工作

The $(table).trigger("update"); throws error

    Uncaught TypeError: Cannot read property 'rows' of undefined 

So, there is a jquery function .ajaxStop() where tablesorter() is called. Do not call tablesorter in .ready()

    jQuery(document).ajaxStop(function(){
      jQuery("#table_name").tablesorter();
    })

which did the job

摘星┃星的人 2024-07-15 06:10:53

对于像我这样面临动态生成表排序问题的新手,这里是解决方案。
前面给出的答案是正确的,但是你把这个命令放在哪里呢?

$('#tableId').tablesorter().trigger('update');

将数据附加到表后,您需要立即放置它。
就我而言

var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
$('#tableId').html('tableData');
$('#tableId').tablesorter().trigger('update');

For those Newbies like me who are facing issue with sorting dynamic generated table, here is the solution.
The answer previously given are correct, but where do you place this command?

$('#tableId').tablesorter().trigger('update');

You need to place it as soon as you've appended the data to the table.
Ex in my case

var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
$('#tableId').html('tableData');
$('#tableId').tablesorter().trigger('update');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文