使用 tablesorter 对多个表进行排序

2023-12-12

我正在使用 jQuery tablesorter 插件来允许用户对我们网站上的数据表进行排序。我最近遇到一个区域,其中使用表排序器的多个表将显示在同一页面上,我对此没有遇到任何问题,并且表排序器插件工作得很好。一些用户要求我们能够同时对所有表进行排序,这很好,因为这些表都具有相同的结构,只是其中的数据不同。以下是表 1 的示例:

<table>
    <thead>
       <tr>
           <th>ID</th>
           <th>Name</th>
           <th>Age</th>
       </tr>
    </thead>
    <tbody>
       <tr>
           <td>1</td>
           <td>Bob</td>
           <td>24</td>
       </tr>
       <tr>
           <td>1</td>
           <td>James</td>
           <td>33</td>
       </tr>
    </tbody>
</table>

表 2 的示例:

<table>
    <thead>
       <tr>
           <th>ID</th>
           <th>Name</th>
           <th>Age</th>
       </tr>
    </thead>
    <tbody>
       <tr>
           <td>5</td>
           <td>PJ</td>
           <td>28</td>
       </tr>
       <tr>
           <td>1</td>
           <td>Sue</td>
           <td>39</td>
       </tr>
    </tbody>
</table>

正如您所看到的,该表相似但显示不同的数据。问题变成了如何允许用户同时对所有表进行排序,但又让他们仍然单独对表进行排序,因为他们可能想这样做。我们想出了这样的想法:如果他们对页面上的第一个表进行排序,我们希望使用该事件作为我们的指示,他们希望以与第一个表相同的排序结构对页面上的所有表进行排序。我的主要问题是有人会如何去做这件事?我想我找到了完成这项工作的最佳区域,即表格排序器小部件,但似乎无法解决最后一块难题。

这是我目前拥有的小部件和表格排序器注册代码:

$(function() {

    $("table:not(:first)").tablesorter();

    $.tablesorter.addWidget({
        id: "tableForceSort",
        format: function (table) {
            if (table.config.sortList.length > 0) {
                $('table:not(:first)').trigger("sorton", table.config.sortList);
            }
        }
    });

    $("table:first").tablesorter({
        widgets: ['tableForceSort']
    });
});

正如您所看到的,我将表排序器添加到页面中的所有表中,但对第一个表进行单独注册,以便我可以向该表添加一个特殊的小部件以强制对页面上的其余表进行排序。这一切都有效,当我实际尝试对表进行排序并触发触发事件时,问题就出现了,这导致页面中断,我似乎不明白为什么。如果有人有办法解决这个问题或有其他一些关于如何解决这个问题的想法,请告诉我。

Thanks


尝试使用“sortEnd”事件...我必须添加一个标志来防止递归。希望我添加了足够的评论,以便这一切都有意义(demo).

$('table').tablesorter();

// using a flag that prevents recursion - repeatedly calling this same function,
// because it will trigger the "sortEnd" event after sorting the other tables.
var recursionFlag = false;

// bind to table sort end event on ALL tables
$("table").bind("sortEnd",function(e, table) {

    // ignore if the flag is set
    if (!recursionFlag) {
        recursionFlag = true;

        // find other tables to resort (but not the current one)
        // the current sort is stored in "table.config.sortList"
        $('table').not(this).trigger("sorton", [ table.config.sortList ]);

        // reset recursion flag after 1 second... so you can't sort faster
        // than that or it won't trigger the other tables
        // you can adjust this value; it all depends on how much data needs
        // to be sorted in the tables. Run the tablesorter with "debug:true"
        // to find out the times needed to sort (but do it in IE as it is
        // the slowest browser)
        setTimeout(function(){ recursionFlag = false; }, 1000);

    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 tablesorter 对多个表进行排序 的相关文章

  • AngularJS 输入字段未从控制器内的 setTimeout 更新

    我正在使用 AngularJS 支持的页面 并且我需要在只读输入文本字段内显示正在运行的时钟 与data ng model 为了模拟运行的时钟 我使用了 JavaScript 调度程序setTimeout每 1000 毫秒调用一个函数 该函
  • 仅在首页加载时使用 cookie 加载 colorbox

    我尝试了来自网络的参考代码 仅在页面加载时加载特定元素一次 这是示例代码
  • 如何模板化 Select2 的预选值

    我预先选择的值Select2 https select2 org如下所示 function formatState state console log state text2 I found undefined here console l
  • 向特定客户端发送消息以及消息发送用户

    我是 SignalR 的初学者 我创建了一个基于 SignalR 的基本聊天应用程序 我面临的问题是我想向特定客户端以及发送消息的用户发送消息 这个怎么做 我知道要向特定客户端发送消息 我们可以这样做 Clients Client Cont
  • 如何让 jQuery 的自动完成插件在页面加载时显示其下拉列表?

    http community sciencecareers org mt static plugins CommunityPlus js autocomplete http community sciencecareers org mt s
  • 使用 jquery 在菜单中突出显示当前 url

    我有一个菜单 但我想突出显示当前与 jquery 的链接 var loc window location var lochref topNavigation li a attr href if lochref loc topNavigati
  • Jquery:选择器找不到类?

    我正在尝试推进 Jquery autcomplete 功能 我希望 Jquery 自动完成在表中创建新行 到目前为止 这有效 但我希望 Jquery 添加一个删除按钮 因此用户可以删除他添加的项目之一 document ready func
  • JavaScript/JQuery:$(window).resize 如何在调整大小完成后触发?

    我这样使用 JQuery window resize function 然而 如果用户通过拖动窗口边缘使其更大 更小来手动调整浏览器窗口的大小 resize上面的事件会多次触发 问题 如何在浏览器窗口调整大小完成后调用函数 以便事件仅触发一
  • CDATA 真的有必要吗?

    我经常使用内联 Javascript 通常是在我制作的 WordPress 主题中 我没有听说过将内联 Javascript 包装在 直到几个月前 几年来我一直在以相当的能力水平做这些事情 我用谷歌搜索了一下 听说人们使用它是因为他们的 J
  • 简单模式对话框中链接的 Tab 键顺序

    我正在使用优秀的 jquery simplemodal 对话框插件来显示项目列表 这些项目包含超链接 除了模式对话框中的链接不会作为选项卡顺序的一部分出现之外 一切都很好 我尝试显式设置 tabindex 但由于某种原因 只有输入元素按 T
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • 删除数据表列中的额外填充

    你好 我创建了 JQuery DataTables 如下所示 所以我的问题是如何删除 图片 列中过多的填充 这就是我初始化表的方式 violators tbl DataTable aoColumnDefs bSortable false a
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • 物化模式覆盖整个页面(模式弹出窗口未带到前台)

    由于保密原因 我无法上传 Web UI 的屏幕截图 物化模态应该表现得像here http materializecss com modals html 但不幸的是 我的网站发生的情况是 包括模式在内的整个页面都是 深色背景 的一部分 模式
  • PNG 透明度问题 - 带有黑色阴影的褪色图像 - IE 中的边框

    我使用图像旋转器在主页上显示一些图像 所有图像均为 PNG 格式 问题出在 IE 7 8 中 图像旁边有黑色阴影 我花了几个小时来解决这个问题 但仍然不知道问题出在哪里以及如何删除它 没有人有类似的问题和提示吗 如何解决 尝试使用 img
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • jquery从变量中删除html元素

    我将 html 保存在变量中 var itinerary events today html 我有很多 html 和一个按钮我想删除 它的 ID 为 myButton 如何从变量中保存的 html 中删除它 我建议这种方法 var itin
  • 动态地将工具提示文本设置为 div 元素

    我正在尝试动态地将工具提示文本设置为容器 div 并对我刚刚添加到有序列表的每个 div 元素 elem Alias Status 使用 jQuery function addNewElement elem var li li li li
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序

随机推荐

  • 如何获取Meteor包中文件的路径?

    我知道怎么做从 Meteor 包中获取当前目录 但是如何获取项目中特定文件的路径呢 node s dirname and filename在流星中不起作用 这很复杂 meteor run将您的项目文件复制到内部的目录树中
  • --oaa 2 和 --loss_function=logistic 在 Vowpal Wabbit 中的效果

    我应该在 VW 中使用哪些参数来执行二元分类任务 例如 让我们使用rcv1 small dat I thought最好使用逻辑损失函数 或铰链 但使用没有意义 oaa 2 然而 经验结果 所有 4 个实验中报告的渐进验证 0 1 损失 表明
  • 如何防止为未实现方法的对象生成模板

    因此 出于示例的目的 假设我有 3 个简单的struct是 其中第二个不包含bar method struct one void foo const int void bar struct two void foo const int st
  • 每个物种使用多个条目的系统发育模型

    我对系统发育回归模型比较陌生 过去 当我的树中每个物种只有 1 个条目时 我使用 PGLS 现在我有一个包含 9 个物种的数千条记录的数据集 我想运行一个系统发育模型 我阅读了最常见的软件包 例如 caper 的教程 但我不确定如何构建模型
  • jQuery 在第一个 11 后停止“单击”操作

    有两个嵌套元素 两者都有不同的click行动 单击内部元素时 我需要停止外部元素操作 HTML div div div div jQuery out click function alert OUT div is pressed in cl
  • 读取 Magic Mouse 和 Apple 无线键盘的电池百分比

    我想问您是否有人知道在 Mac 操作系统中访问鼠标和键盘电池状态的简单方法 有一些API可以访问这些信息吗 谢谢 对于键盘来说是 ioreg n IOAppleBluetoothHIDDriver grep i batterypercent
  • Ruby:仅在某些情况下重载运算符行为

    我的问题是 如何在内置类 例如 Integer new 上重载运算符 但仅限于某些情况 具体取决于第二个操作数的类 这是我正在寻找的行为 myObject myClass new 1 myObject gt special behaviou
  • 移动向量

    我有一个数据框 我想 对齐 每一列 以便每列的最大值位于同一行 我试图使用基本功能来做到这一点 但得到了错误的结果 即 只是覆盖而不转移 我刚刚在 Hmisc 中找到了 Lag 函数 但是 我确信有一种方法可以在基础上做到这一点 我只是想错
  • 函数式语言中的“模式匹配”是什么?

    我正在阅读有关函数式编程的内容 我注意到模式匹配许多文章都提到它是函数式语言的核心特性之一 有人可以为 Java C JavaScript 开发人员解释一下这是什么意思吗 理解模式匹配需要解释三个部分 代数数据类型 什么是模式匹配 为什么它
  • 如何在 javascript 中使用 i18next 中的翻译

    我知道我可以使用 i18next 来翻译 html 中的语言 例如 div div 但是有没有办法在 JS 中使用它 例如 如果我想做类似的事情 alert someKey 它应该是alert t someKey see http i18n
  • 打开 dfm 文件时出错 - 未找到类 xxxx

    通过双击打开 dfm 文件时 出现以下错误 Class TMyClass not found Ignore the error and continue Note Ignoring the error may cause component
  • 你要在c#中获取windows安装SID吗?

    我知道这个问题已经被问过很多次了 但没有人回答我的问题 我从 Comptiat A 的研究中了解到 当使用自动化 无人值守 安装时 技术人员总是必须返回并更改机器 SID 然后才能在每台计算机上激活操作系统 似乎有很多关于如何通过网络获取S
  • 如何匹配 powershell 中的 wsl 输出? [复制]

    这个问题在这里已经有答案了 我想查看我是否正在运行特定的 wsl 发行版 Windows 10 Home WSL 2 PS C Users User gt wsl list running Windows Subsystem for Lin
  • QTP 数据表操作*极其*慢(在 MMDRV 批处理执行器下好多了)?

    可能是一个精彩的故事 QTP 似乎无缘无故地浪费了你的工作时间 考虑这个脚本 其中的数据表只有一个全局行 有 26 列 名为 A 到 Z 填充了任意值 Print Started Services StartTransaction Simp
  • 连接一组点得到非自相交非凸多边形

    我有一组无序的二维点 代表建筑物的角点 我需要将它们连接起来以获得建筑物的轮廓 这些点是通过组合不同个体收集的不同多边形来获得的 我的想法是使用这些多边形来按顺序获取点 例如 获取最大和最小多边形之间的区域并连接这些点 使其位于该区域中 我
  • 使用iText创建具有完整外观的签名

    我需要创建签名 其中仅包含签名姓名和日期 另外 这两个字段必须放置在精确的坐标处 因为这两个字段必须放置在预定义的 修订表 中 这可能吗 这是我的代码 它与 Bruno Lowagie 的示例非常 非常相似 并且可能甚至不接近问题的解决方案
  • Android 地图:如何在地图上设置折线动画?

    当我在地图上从点 A gt B 绘制折线时 我需要用动画绘制折线 就像从 A gt B 一样 折线继续绘制 我使用下面的链接作为参考 https github com amalChandran google maps route anima
  • codeigniter 将 pdf 文件作为电子邮件附件发送

    我正在使用即时生成 pdf 文件TCPDF 通过使用 TCPDF 我得到了使用 Base64 编码的原始文件 现在我想使用以下命令将此原始数据作为电子邮件附件发送codeigniter电子邮件助手功能 怎么能做到这一点呢 我花了一段时间才找
  • 我想向 pandas 数据框添加新索引

    我正在尝试向 pandas 数据框添加新索引 数据框如下所示 date price neg vol pos vol 0 2017 10 17 01 00 00 51 88 11 4 1 2017 10 17 01 00 00 51 89 1
  • 使用 tablesorter 对多个表进行排序

    我正在使用 jQuery tablesorter 插件来允许用户对我们网站上的数据表进行排序 我最近遇到一个区域 其中使用表排序器的多个表将显示在同一页面上 我对此没有遇到任何问题 并且表排序器插件工作得很好 一些用户要求我们能够同时对所有