1

好吧,这让我发疯了。

我有一个 csv 文件,我正在使用 CSVToTable 将其动态加载到 html 表中,然后使用 Tablesorter 对其进行排序。

我遇到的问题是当我尝试应用 Tablesorter 小部件(如“过滤器”)时,它们将不适用。

但是当我复制动态加载的 html 表并将它们复制并粘贴到我的源代码中时,它们可以毫无问题地运行。

有人可以向我解释为什么会发生这种情况以及如何动态加载我的 CSV 文件并应用 Tablesorter 小部件吗?

你可以在这里查看我的代码:http: //cdemeke.com/Chris_Test/Test14/test4.html

非常感谢您!

4

1 回答 1

1

初始化 CSVToTable 脚本时,它会触发一个loadComplete事件,然后该事件具有初始化 tablesorter 的代码。这是需要修改的代码:

$('#CSVTable2')
    .CSVToTable('test2.csv', {
        loadingImage: 'images/loading.gif',
        startLine: 1,
        headers: ['Project Number', ...]
    })
    .bind("loadComplete",function() {
        $('#CSVTable2').find('table')
            .tablesorter({
                widthFixed: true,
                widgets: ['zebra', 'filter']
            })
            .tablesorterPager({
                container: $("#pager")
            });
    });

此外,在jquery.tablesorter.js文件的顶部,是以下代码:

$(function() {
    $("table")
        .tablesorter({widthFixed: true, widgets: ['zebra']})
        .tablesorterPager({container: $("#pager")});
});

我认为从这里删除它是一个好主意,因为初始化顺序在某些浏览器中可能是一个问题。它不应该找到一个表,因为它还没有被构建,但是如果它找到了,它将强制它找到的所有表使用寻呼机。如果表已经初始化,tablesorter 的额外参数将被忽略。

于 2013-07-15T16:00:15.427 回答