jQuery focusout事件不会触发table元素

时间:2012-04-16 09:04:37

标签: javascript html javascript-events jquery

我正在尝试使表支持多行选择(目前只有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");
    });

还有其他人处理过这个问题吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果对表体或表元素使用tabindex作为

,表元素也可以获得焦点
$('#tableId tbody').attr("tabindex", 1);

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

答案 1 :(得分:0)

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