2

我正在尝试编写一个小 jQuery 以在用户将输入框留在表中时触发操作,并检查他们是否已移动到另一个表或表外。

我遇到的问题是成功确定重点在哪里。由于我不会深入讨论的原因,这个项目使用的是jQuery 1.2.6,所以一些焦点识别选择器 (:focus) 不起作用。

问题是最接近的匹配$(document.activeElement)仅在某些时候有效,因为它经常将<body>标识为当前活动元素。

似乎模糊事件在焦点事件之前触发,所以我无法在那里检索它。

我在 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