jsFiddle无法正常工作,因为在插件之后加载了jQuery。该框架被设置为加载jQuery v1.11.0,所以jQuery实际上被加载了两次。第二个副本覆盖第一个副本,而tablesorter与第一个副本相关联。很多东西打破 - 这里是demo updated删除第二个副本 - 但它仍然不工作!
如果使用存储库中包含的parser-input-select.js
file,则它具有复选框解析器,可在更改后更新单元格,以便正确更新排序。无论如何,有四个版本的代码,较旧的版本不使用提到的解析器。您可能会感兴趣的演示是这一个:http://jsfiddle.net/abkNM/6163/你可能不需要寻呼机,所以才不包括代码:
$(function() {
var $table = $('table').tablesorter({
theme: 'blue',
widgets: ['zebra', 'filter'],
widgetOptions : {
group_checkbox: [ "checked", "unchecked" ]
},
headers: {
0: { sorter: 'checkbox' }
}
})
// HEADER CELL Checkbox - toggles state of visible checkboxes
// make sure to include the "parser-input-select.js" file
// it contains the most up-to-date checkbox parser
.on('change', 'thead input[type="checkbox"]', function(){
var checkboxColumn = 0,
onlyVisible = true,
$this = $(this),
isChecked = this.checked;
$table
.children('tbody')
.children('tr' + (onlyVisible ? ':visible' : ''))
.children(':nth-child(' + (checkboxColumn + 1) + ')')
.find('input')
.prop('checked', isChecked)
.trigger('update');
});
});
确保根据需要修改checkboxColumn
& onlyVisible
变量。
更新:有在刚固定分析器代码中的错误,这是目前在主分支只(在我的答案链接)提供。否则,您只需输入unchecked
或checked"
(用一个精确匹配的报价进行检查)来过滤复选框。
这些过滤器名称(复选框状态)由group_checkbox
option设置,我刚添加到我的答案中。
非常感谢! parser-input-select.js是我所缺少的。我刚刚得到它的工作。更新的示例位于http://jsfiddle.net/RobRichens/5fLr7c4o/22/,对于那些在复选框行中出现问题的其他任何人都是如此。 –