Jquery表Sorter,排序只工作一次

时间:2015-12-30 15:33:03

标签: javascript jquery tablesorter

单击标签时,我显示的是动态数据,这对于表格分类器工作正常。单击表标题将对表行进行排序。

我面临的问题是,在点击标签“One”和然后点击标签“Two”,并尝试从第二个响应中对数据进行排序后,它将从此处停止工作。

这是我的代码:

$(document).on("click", ".candlespattern", function() {

    var clicked = $(this).attr("id");
    var datatoselect = '';

    if (clicked === 'one') {
        datatoselect = myjsonresponse1;
    } else if (clicked === 'two') {
        datatoselect = myjsonresponse2;
    }

    var html = "";
    html += '<thead><th class="thheaders">Symbol</th><th class="thheaders">Date</th></thead><tbody>';
    for (var e = 0; e < datatoselect.length; e++) {
        html += "<tr><td>" + datatoselect[e].name + "</td><td>" + datatoselect[e].date_time + "</td></tr>"
    }

    $("#candletable").html(html);

    $('#candletable').tablesorter({}).tablesorterPager({
        container: $(".pager"),
        size: 20
    });
    $("#candletable").trigger("update");

    $("#pager").show();
});

Here is JSFiddle

1 个答案:

答案 0 :(得分:2)

好的,在研究了这个特定的插件之后,我遇到了http://doc.qt.io/qt-5/appicon.html。 首先,您的问题很可能是您覆盖了表格的Stock.select('count(distinct part_number)')... 每次时间点击项目导致插件丢失一些引用。我建议你这样做:

由于thead对于两个响应都是相同的,因此无需每次都动态添加它,我们可以将它放在HTML中:

thead

接下来我们应该只将<table id="candletable" class="table table-striped tablesorter"> <!-- add the table head and an empty tbody --> <thead> <th class="thheaders">Symbol</th> <th class="thheaders">Date</th> </thead> <tbody> </tbody> </table> 初始化一次,然后只更新数据:

tablesorter

最后,我们从点击处理程序中删除$(document).ready(function() { // initialize the table sorter on document.ready $('#candletable').tablesorter({}).tablesorterPager({ container: $(".pager"), size: 20 }); $("#pager").hide(); }); 数据和初始化,并将创建的表格行添加到thead

tbody

useful example