【发布时间】:2021-08-27 14:49:46
【问题描述】:
我有一个 datatables 表,我表中的某些行具有 banned 类。我想在页面加载时排除这些行,在选中复选框时显示它们,如果未选中复选框,则再次排除它们。
这是我目前的代码
<div class="field">
<div class="ui toggle checkbox">
<input type="checkbox" id="display_banned_songs" tabindex="0" class="hidden">
<label>Display Banned Songs?</label>
</div>
</div>
$('.ui.toggle.checkbox').checkbox({
onChecked: function() {
console.log('onChecked called');
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
return true;
}
);
},
onUnchecked: function() {
console.log('onUnchecked called');
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
return !$(table.row(dataIndex).node()).hasClass('banned');
}
);
},
onChange: function() { table.draw() }
});
目前,页面加载时不排除这些行,所以我知道我的onUnchecked 方法有效,因为我可以看到页面加载时的行,但是当我选中然后取消选中我的复选框时, 指定的行被隐藏,其他所有内容都显示。
我不知道为什么我的onChecked 函数不起作用,我基本上需要它来显示所有行(除非被搜索栏过滤)。
我也不确定如何在页面加载时隐藏指定的行。
如何让我的 onChecked 方法正常工作,如何在页面加载时隐藏行?
【问题讨论】:
标签: javascript jquery datatables