jQuery TableSorter仅适用于ID(数字字段),而不适用于其他字段,如文本,日期等

DHR*_*SAL 0 jquery tablesorter jquery-plugins

在我的Web应用程序中,我维护了用户记录表.在客户端发送时添加和删除记录,而不是用户单击"保存"按钮以保存在服务器上完成的所有操作.

我已经将表分类器应用于表上的排序功能.但令人惊讶的排序功能只适用于ID字段,即表的第一个字段,但对于所有其他字段,它给出错误(来自chrome的错误跟踪)

Uncaught TypeError: Cannot read property 'type' of undefined
multisortjquery.tablesorter.js:600
$.extend.tablesorter.construct.each.$headers.click.mousedown.onselectstart 
Run Code Online (Sandbox Code Playgroud)

这是表结构.

<table id="contentTable" class="tablesorter">
                        <thead>
                            <tr>
                                <th> ID </th>
                                <th> Name </th>
                                <th> Birth Date </th>
                                <th> City </th>
                                <th id="actionheader"> Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td></td>
                            </tr>
                        </tbody>
                    </table>
Run Code Online (Sandbox Code Playgroud)

在此我动态添加数据.在这种情况下,排序仅适用于第一个字段,即ID字段

这就是我初始化tableSorting的方法.

  function initializeTableSorting() {
        $("#contentTable").tablesorter({
            sortList : [[0, 0]],
            headers : {
                0 : {
                    sorter : "integer"
                },
                1 : {
                    sorter : "text"
                },
                2 : {
                    sorter : false
                },
                3 : {
                    sorter : "text"
                },
                4 : {
                    sorter : false
                }
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

如果从初始化中删除false选项,如何使所有字段,甚至日期字段都能正常工作?

Rob*_*kan 6

有"完全"相同的问题并且不知道如何解决它,花了一些时间,但最终认为我在tableSorter中为数据提供了一个空行(后面是有效的行).虽然我可以在HTML中看到有效的数据,但在源代码中我错过了一个空的前行......这可能搞砸了TableSorter JS.

删除了开始的空行 (在thead之后,但在任何其他数据之前)并且此问题已解决.