2

テーブルが複数行の選択をサポートするようにしようとしています(今のところ、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");
    });

他の誰かがこの問題に対処しましたか?前もって感謝します!

4

2 に答える 2

1

テーブル本体またはテーブル要素に tabindex を使用すると、テーブル要素もフォーカスを取得できます。

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

この後、テーブルをクリックすると、フォーカスが得られます。

于 2013-01-01T08:42:31.820 に答える
0

「focusout」イベントは、入力要素など、最初にフォーカスできる要素からフォーカスが離れたときにのみ発生します。私の知る限り、テーブル要素はそのフォーカスを得ることができません。選択した行の選択解除を別の方法で処理する必要があります.Lolleroは、あなたの質問に対するコメントで、考えられる解決策の1つを挙げました。

于 2012-04-16T09:35:04.093 に答える