jQuery Tablesorter未捕获类型错误:无法设置属性';计数';未定义的

jQuery Tablesorter未捕获类型错误:无法设置属性';计数';未定义的,jquery,tablesorter,Jquery,Tablesorter,我正在使用jQuery TableSorter插件,并得到以下错误uncaughtTypeError:无法使用此代码设置未定义的属性“count”: $(document).ready(function () { var copyThead = $(".uiGridContent thead").html(); copyThead = '<table><thead>' + copyThead + '</thead></table>'

我正在使用jQuery TableSorter插件,并得到以下错误
uncaughtTypeError:无法使用此代码设置未定义的属性“count”:

$(document).ready(function () {
    var copyThead = $(".uiGridContent thead").html();
    copyThead = '<table><thead>' + copyThead + '</thead></table>';
    $(".uiGridHeader").html(copyThead);
    $(".uiGridContent table").tablesorter();
    $(".uiGridContent table thead").hide();
    $(".uiGridHeader th").click(function () {
        // Get updated HTML
        var FindcopyThead = $(".uiGridContent thead").html();
        var NewcopyThead = '<table><thead>' + FindcopyThead + '</thead></table>';
        $(".uiGridHeader").html(NewcopyThead);

        var index = $(".uiGridHeader th").index(this);
        var sorting = [[index, 0]];
        $(".uiGridContent table").trigger("sorton", [sorting]);
        return false;
    });
});
$(文档).ready(函数(){
var copyThead=$(“.uiGridContent thead”).html();
copyThead=''+copyThead+'';
$(“.uiGridHeader”).html(copyThead);
$(“.uiGridContent表”).tablesorter();
$(“.uiGridContent表thead”).hide();
$(“.uiGridHeader th”)。单击(函数(){
//获取更新的HTML
var FindcopyThead=$(“.uiGridContent thead”).html();
var NewcopyThead=''+FindcopyThead+'';
$(“.uiGridHeader”).html(NewcopyThead);
var索引=$(“.uiGridHeader th”).index(本);
变量排序=[[index,0]];
$(.uiGridContent table”).trigger(“sorton”,[sorting]);
返回false;
});
});
HTML是:

<div class="uiGrid">
    <div class="uiGridHeader">
        <!-- NEW HEADER GOES HERE -->
    </div>
    <div class="uiGridContent">
        <table class="list sortable">
            <thead>
                <tr>
                    <th scope="col"><input type="checkbox" id="checkall" /></th>
                    <th scope="col">Name</th>
                    <th scope="col">Post Code</th>
                    <th scope="col">SIC Code</th>
                    <th scope="col">&#8470; of Employees</th>
                    <th scope="col"></th>
                    <th scope="col"></th>
                </tr>
            </thead>
            <tbody>
<!-- ROWS -->

名称
邮政编码
SIC代码
№ 雇员人数

我复制表格标题的原因是,我需要将标题拆分,以使我的应用程序的结构正常工作这部分很好但是由于类等被添加到原始标题中,我需要再次用新的标题更新HTML这很好。但我得到了错误?你知道为什么或者如何修复它吗?谢谢

有三个问题。索引返回-1,每次设置HTML都会删除绑定到头部的事件,并且因为触发sorton事件,所以需要自己跟踪方向

这是我的代码,我希望这有帮助

var copyThead = $(".uiGridContent thead").html();
copyThead = '<table><thead>' + copyThead + '</thead></table>';
$(".uiGridHeader").html(copyThead);
$(".uiGridContent table").tablesorter();
$(".uiGridContent table thead").hide();

function bindClick() {
     $(".uiGridHeader th").click(theadClick);
}

var direction = 0;
function theadClick() {
    if(direction) {
        direction = 0;
    } else {
        direction = 1;
    }

    var index = $(this).index();
    var sorting = [[index, direction ]];
    $(".uiGridContent table").trigger("sorton", [sorting]);

    var FindcopyThead = $(".uiGridContent thead").html();
    var NewcopyThead = '<table><thead>' + FindcopyThead + '</thead></table>';
    $(".uiGridHeader").html(NewcopyThead);
    bindClick();
}

bindClick();
var copyThead=$(“.uiGridContent thead”).html();
copyThead=''+copyThead+'';
$(“.uiGridHeader”).html(copyThead);
$(“.uiGridContent表”).tablesorter();
$(“.uiGridContent表thead”).hide();
函数bindClick(){
$(“.uiGridHeader th”)。单击(ADClick);
}
var方向=0;
函数theadClick(){
如果(指示){
方向=0;
}否则{
方向=1;
}
var index=$(this.index();
变量排序=[[索引,方向]];
$(.uiGridContent table”).trigger(“sorton”,[sorting]);
var FindcopyThead=$(“.uiGridContent thead”).html();
var NewcopyThead=''+FindcopyThead+'';
$(“.uiGridHeader”).html(NewcopyThead);
bindClick();
}
bindClick();

我遇到了同样的错误。我花了一分钟的时间才发现必须传递的值是一个三层数组:

$('table').trigger('sorton', [[[1,1]]]);
与初始排序选项相反:

$('table').tablesorter({
    sortList: [[1,1]]
});
向表中添加新数据时,请确保:

$('table').trigger('update').trigger('appendCache');
但是,在动态添加新列之后,我无法使tablesorter发挥良好的性能。相反,在这些情况下,我必须让jQuery解除所有绑定,以便重新初始化:

$('table').remove().appendTo('body').tablesorter({ ...

排序工作,但只需单击一次。。。在此之后,进一步的点击将无法在任何列上工作?有什么想法吗?thanksIt似乎可以很好地工作。也许做一些日志记录并确保事件被触发。它确实工作,但标题的类没有改变?在复制的HTML和原始HTML上。因此,这与使用
有关。单击()
我假设这是因为您仍在重置表的html?通过这样做,您将删除click事件和.data()值。我已经用一个新的副本更新了JSFIDLE,我将编辑我的帖子。仍然没有为我更改类:/它在小提琴中对你有用吗?出于某种原因,当我链接“update”和“appendCache”触发器时,它没有正常工作。但当我分别给他们打电话时,他们成功了<代码>$('table')。触发器('update')$('table')。触发器('appendCache')