我正在尝试编写一个小 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 中的当前焦点元素?