使用jquery将焦点设置到元素时似乎存在问题。它显然不会触发:在元素上设置focus css属性。
例如在我的CSS中我有:
div.item1:focus { border:2px solid red; }
在我的jquery中我有:
$("div.item1").focus();
焦点已设置,但元素没有应用红色边框。
答案 0 :(得分:8)
div
元素不使用:focus
选择器..请参阅the CSS2 spec
:焦点伪类适用于元素具有焦点(接受键盘事件或其他形式的文本输入)。
你可以这样做:
.hoverclass { border:2px solid red; }
$("div.item").hover(function() {
$(this).addClass('hoverclass')
},function() {
$(this).removeClass('hoverclass')
});
答案 1 :(得分:3)
focus()
仅适用于表单元素和链接,如果您尝试在其他类型的元素上使用它,则无法使用。
有关详细信息,请参阅jQuery doc for focus()
答案 2 :(得分:2)
来自the manual:
焦点事件在获得焦点时发送到元素。这个事件 隐含地适用于有限的一组元素,例如形式 元素(
<input>
,<select>
等)和链接(<a href>
)。在最近 在浏览器版本中,事件可以扩展为包含所有元素 通过显式设置元素的tabindex属性来显示类型。一个 element可以通过键盘命令获得焦点,例如Tab键,或 通过鼠标点击元素。
请参阅此答案以获取示例:https://stackoverflow.com/a/5966034/1013082
答案 3 :(得分:0)
转到jQuery focus()页面查看:
焦点事件在获得焦点时发送到元素。这个事件 隐含地适用于有限的一组元素,例如形式 元素(
<input>
,<select>
等)和链接(<a href>
)。在最近 在浏览器版本中,事件可以扩展为包含所有元素 通过显式设置元素的tabindex属性来显示类型。一个 element可以通过键盘命令获得焦点,例如Tab键,或 通过鼠标点击元素。
转到PPK关于浏览器的研究
PPK focus Event Browser compatibility
看起来所有浏览器都通过了tabindex测试。
答案 4 :(得分:0)
如果div具有tabindex属性,则可以对其进行聚焦。在这里看到这个答案:
答案 5 :(得分:-1)
你需要这样做:
$("div.item1").focus(function(){
$("div.item1").css("border","2px solid red");
});