我在第一列中有一个包含类别名称的“tablesorter table”。我使用快捷按钮过滤行,这些按钮触发特定的“搜索”操作,具体取决于哪一个是活动的:
function do_filtering() {
var category = $('#categories .active a').attr('data-filter-text');
var columns = [];
columns[0] = category;
$('table').trigger('search', [columns]);
}
表的内容可能会发生变化。到目前为止,我在桌面上触发了两个事件:“updateCell”和“search”,并且它得到了适当的更新。
我需要分开这些电话:
不幸的是,在“updateComplete”处理程序中进行过滤不起作用,请参阅:http://jsfiddle.net/8cg4f/352/
如何在更新表后保留搜索条件?
答案 0 :(得分:0)
嗯,问题似乎是因为过滤器输入为空,过滤器小部件显示更新后的所有行。我有两个解决方案,第二个可能是更好的解决方案因为第一个方法导致闪烁:
1)在回调中添加setTimeout
,时间为1毫秒(demo):
$('td').click(function () {
resort = false;
$("table").trigger('updateCell', [$(this).closest('td'), resort, function(table){
setTimeout(function(){ do_filtering(); }, 1);
}]);
});
2)更新过滤器,并隐藏过滤器行(demo):
CSS
.tablesorter-filter {
display: none;
}
代码
function do_filtering() {
var category = $('#categories .active a').attr('data-filter-text');
$('.tablesorter-filter:first').val(category).trigger('search');
}
$('td').click(function () {
resort = false;
$("table").trigger('updateCell', [$(this).closest('td'), resort, function(table){
do_filtering();
}]);
});