问题
我一直在使用Tablesorter插件来让最终用户的生活更美好。我花了几个小时试图同时启用“滚动器”和“过滤器”小部件。问题是,当两者都启用时,下拉选择器无法过滤表结果。
我创建了一个小提琴来说明这个问题。
解决方法
(我认为,)我已将问题缩小到change
下拉选择器事件的损坏事件侦听器。
根据文档,一些方法可用于获取当前过滤器。
当我运行时:
$.tablesorter.getFilters( $('table') );
它返回一个过滤器值数组;但是,下拉选择器始终是空字符串。
另一方面,如果我运行:
$.tablesorter.setFilters( $('table'), [ 'Some Value', '', '', '' ], true );
然后过滤器将被更新并按预期过滤表。
我最终制作了自己的事件侦听器,更新过滤器并使用新参数进行搜索。
$('someselector').on('change', 'select', function(event) {
var table = $('sometableselector'),
filters = $.tablesorter.getFilters( table );
filters[Number($(this).attr('data-column'))] = $(this).val();
$.tablesorter.setFilters( table, filters, true );
});
问题
我是否发现了一个错误,或者我只是做错了什么?