2

ユーザーがテーブル内の入力ボックスを離れたときにアクションをトリガーする小さなjQueryを作成し、ユーザーが別のテーブルに移動したか、テーブルの外に移動したかを確認しようとしています。

私が抱えている問題は、焦点がどこにあるかをうまく特定することです。ここでは説明しませんが、このプロジェクトではjQuery 1.2.6を使用しているため、フォーカス識別セレクター(:focus)の一部が機能しません。

問題は、最も近い一致である$(document.activeElement)ですが、 <body>を現在のアクティブな要素として識別することが多いため、機能する場合があります。

また、blurイベントはfocusイベントの前に発生するように見えるので、そこで取得することはできません。

JS Fiddleで実用的な例を設定しました:http://jsfiddle.net/t3YgZ/6/

コードのベースは次のとおりです。

var currentRow = -1;

$(document).ready(function() {

    var rows = $("table tr");

    // Set ID for each row on init
    rows.each(function(index) {
        $(this).attr("id", index);
    });

    // Attach a handler to leaving each input box
    rows.find("input").blur(function() {
        var leavingRow = $(this).parents("tr:first").attr("id");
        var newSelectedRow = $(document.activeElement).parents("tr:first").attr("id");
        if (newSelectedRow != null && leavingRow != newSelectedRow) {
            alert("row changed");
        }
    });

});

jQuery 1.2.6で現在のフォーカス要素を特定するにはどうすればよいですか?

4

0 に答える 0