在这个jsFiddle中,我在第一列中有一个带有复选框的表格。表头中的主复选框按预期工作,在单击时切换表中所有复选框的状态。
我为Shift+设置了一个热键X来切换主复选框。使用热键时所需的行为是:
- 主复选框已切换
- 每个子复选框都将其选中状态设置为与主复选框匹配
但实际发生的事情恰恰相反……
- 每个子复选框都将其选中状态设置为与主复选框匹配
- 主复选框已切换
这是相关代码
$(".master-select").click(function(){
$(this).closest("table").find("tbody .row-select").prop('checked', this.checked);
});
function tickAllCheckboxes() {
var master = $(".master-select").click();
}
//using jquery.hotkeys.js to assign hotkey
$(document).bind('keydown', 'shift+x', tickAllCheckboxes);
这导致子复选框具有与主复选框相反的选中状态。为什么会这样?修复会很好,但我真的很想解释一下,所以我可以理解发生了什么。