我正在尝试使表支持多行选择(目前只有CTRL +鼠标点击组合)。一切正常,但当我在表区域外单击时,行不会取消选择。不幸的是,我发现聚焦事件根本不会触发。这是我的代码:
$(".library tbody tr").live('click', function (event) {
event.preventDefault();
if (event.ctrlKey) {
$(this).toggleClass('selected-row');
} else {
$(".library tbody tr").removeClass("selected-row");
$(this).addClass("selected-row");
}
});
$("table.library").live('click', function () {
$(".library").addClass("focused");
});
$("table.library").live('focusout', function () {
$(this).removeClass("focused");
});
还有其他人处理过这个问题吗?提前谢谢!
答案 0 :(得分:1)
如果对表体或表元素使用tabindex作为
,表元素也可以获得焦点$('#tableId tbody').attr("tabindex", 1);
在此之后,当您点击表格时,它将获得焦点。
答案 1 :(得分:0)
'focusout'事件仅在焦点离开可以首先聚焦的元素时触发,例如输入元素。据我所知,table元素无法获得焦点。你需要以其他方式处理所选行的取消选择,Lollero在他对你的问题的评论中提出了一个可能的解决方案。