jQuery DataTable - 排序后删除元素类



我正在开发一个django应用程序。在我的 HTML 模板中,我有一个表格,其中一行是我动态创建的 2 行。这是相关的TD:

<td>
<div class="row">
{% for d in p.get_list_of_lists %}
<div class="a-box">{{ d.0 }}</div>
{% endfor %}
</div>
<div class="row">
{% for d in p.get_list_of_lists %}
<div class="b-box">{{ d.1 }}</div>
{% endfor %}
</div>
</td>

我正在文档上运行一个 javascript 函数,准备将类动态添加到每个 a-box:

function createSquares() {
$('.a-box').each(function () {
a= this.innerText
switch (a) {
case "1":
$(this).addClass('great')
break;
case "2":
$(this).addClass('good')
break;
case "3":
$(this).addClass('ok')
break;
case "4":
$(this).addClass('tough')
break;
case "5":
$(this).addClass('bad')
break;
default:
// code block
}
});
}

下面是 jQuery dataTable 的代码:

function createTable() {
dt = $('#data')
if (dt) {
dt.DataTable({
"order": [[3, "desc"]],
"aLengthMenu": [[25, 50, 75, -1], [25, 50, 75, "All"]],
"iDisplayLength": 25,
'aoColumnDefs': [{
'bSortable': false,
'aTargets': ['nosort']
}]
});
}
}

一切正常。我能够用所需的颜色为每个框着色。但是,当我按其中一列对表进行排序时,我添加的一些类(很好,很好,还好,很差(被删除,有些保留了下来。我不明白为什么留下来的人和不留下来的人有什么区别。

感谢您的帮助

我能够通过将createSquares移动到createTable中来解决这个问题,就像上面建议的那样。

function createTable() {
dt = $('#Data')
if (dt) {
dt.DataTable({
"order": [[4, "desc"]],
"aLengthMenu": [[25, 50, 75, -1], [25, 50, 75, "All"]],
"iDisplayLength": 25,
'aoColumnDefs': [{
'bSortable': false,
'aTargets': ['nosort']
}],
"createdRow": function (row, data, index) {
createFiveNext()
}
});
}
}

最新更新