我正在构建一个包含各种锚点和表单元素的页面,这些页面可以聚焦,我想知道如果能够集中注意力,我如何能够获得当前关注的元素。我认为在jQuery中实现它的一种方法是使用.is(:focus)
。我正在寻找一个jQuery或vanilla js解决方案 - 只是有用的东西。
以下是我在psuedo-code中尝试做的事情:
if (something is focused){
get the tag name of that which is currently focused and store that in a variable as a string.
}
else {
alert("nothing is being focused on");
}
此外,如果您可以回答这个问题,请执行以下操作: 是不是始终关注的东西?这意味着当代码或用户完成任何特定元素之前没有特定元素时,文档/主体是否会被聚焦?
答案 0 :(得分:0)
假设你想用jQuery做这个,你正在寻找的是jQuery .prop()
方法。 $(someElement).prop('tagName')
会返回标记名someElement
。
只是将它们放在一起,例如:http://jsfiddle.net/kZbYv/1/
答案 1 :(得分:0)
您可以使用以下内容:
$('*:focus')
答案 2 :(得分:0)
您可以设置关注focus
的元素列表,也可以使用通配符选择器:
$(function () {
var focusedEls = [];
$('*:visible').bind('focus', function (e) {
focusedEls.push(e.target);
console.log( $.unique(focusedEls) );
});
});
Fiddle: http://jsfiddle.net/xfwy2/
有很多方法可以存储聚焦的元素,我只选择了一个数组。此外,我不确定您是否要跟踪每个元素的重点次,但如果您这样做,只需抛弃$.unique()
获取完整列表。