2

我正在尝试使表格支持多行选择(目前只是 CTRL + mouseclick 组合)。一切正常,但是当我在表格区域外单击时,行不会取消选择。不幸的是,我发现 focusout 事件根本不会触发。这是我的代码:

    $(".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");
    });

有没有其他人处理过这个问题?先感谢您!

4

2 回答 2

1

如果您使用 tabindex 作为表格主体或表格元素,表格元素也可以获得焦点

$('#tableId tbody').attr("tabindex", 1);

在此之后,当您单击表格时,它将获得焦点。

于 2013-01-01T08:42:31.820 回答
0

'focusout' 事件仅在焦点离开可以首先聚焦的元素时触发,例如输入元素。据我所知,表格元素无法获得焦点。您需要以其他方式处理选定行的取消选择,Lollero 在他对您的问题的评论中提到了一种可能的解决方案。

于 2012-04-16T09:35:04.093 回答