【发布时间】:2014-07-24 17:08:26
【问题描述】:
我们有以下 HTML:
<div>
<span>
<span id="Container1" tabindex="1" >Container1</span>
</span>
</div>
<span id="Container2" tabindex="2" >Container2</span>
并且我们需要在页面加载时将焦点设置在 Container2 <span> 元素上。
我尝试了以下 jquery:
$(document).ready( function(){
$("#Container2").focus();
});
它在 Chrome(版本 35.0.1916.153)和 IE9 中运行良好。但在 Firefox (v. 30.0) 中它不起作用。 根据this question我也试过了
$(document).ready( function(){
setTimeout(function () {
$("#Container2").focus();
}, 0);
});
和
$(document).ready( function(){
setTimeout(function () {
$("#Container2").trigger('focus');
}, 0);
});
但它是相同的result。
在我们按下 TAB 按钮之前,也不能通过鼠标单击来选择元素。
我查看了this 问题,似乎焦点设置正确但未呈现轮廓。
有没有办法在 Firefox 中设置默认焦点?
【问题讨论】:
-
"焦点事件在一个元素获得焦点时被发送。该事件隐式适用于有限的一组元素,例如表单元素(、
-
实际上,当您不使用超时时,它似乎有效:jsfiddle.net/BVS29/87 但您必须在 jsfiddle 之外观看:fiddle.jshell.net/BVS29/87/show 这是因为
tabindex -
解释一下你的用例会很有用。就像您在 jQuery 文档中阅读的那样,不推荐使用能够关注非输入/href 元素的行为。你为什么要这样做?我想最好将跨度更改为输入元素并删除它们的外观。
-
我们有项目的树形结构,我们需要使用键盘的箭头按钮来实现导航。一些由 标记表示的项目,其他由 表示。似乎问题不在跨度标签中,而是在 Firefox 焦点大纲中。
标签: javascript jquery html css firefox