Firefox-当不在输入控件上时隐藏焦点高亮显示
Firefox - hiding focus highlight when not on an input control
我们有一个要求,即一个页面可以由一个包含多个部分的表单组成。可以添加或删除节。用户选择添加部分后,将提交表单,并返回添加了新部分的新页面。浏览器应该滚动到新部分的顶部。这很好,我有一个通用的jquery"滚动到锚"解决方案。然而,除了简单地设置window.location()
之外,我还需要确保对于键盘用户来说,点击tab键会将他们带到锚点之后的下一个字段。我正在使用这个问题的解决方案来做这件事。
这在IE 8/9中运行良好,但在firefox(15)中,我看到锚标记所在的地方有一个小的焦点正方形。我想抑制这种情况,我尝试设置display:none
,但这当然会停止滚动。我试图创建一个fiddle,但jsFiddle没有证明这个问题,因为fddle网站本身干扰了焦点设置,但在本地运行的同一浏览器中的相同代码确实会干扰焦点设置。
下面是我的代码的简化版本,演示了这个问题。
<html>
<head>
<title>test scroll</title>
</head>
<body>
<form>
<div>Blah</div>
<div>
<label for="a">Section 1: <input id="a" type="text" /></label>
</div>
<a id="scrollToAnchorSection2"></a>
<div>
<label for="b">Section 2: <input id="b" type="text" /></label>
</div>
</form>
</body>
</html>
和我的jquery
$(document).ready(function() {
/* Find any "scroll to anchors" that have been set */
var anchors = $('[id*=scrollToAnchor]:first');
if (anchors.length == 1) {
window.location = "#" + anchors.attr("id");
// Set tab position
anchors.attr("tabindex", -1).focus();
}
});
和css
div {
margin-left:5em;
}
根据要求。。。
模糊功能处理输入的失去焦点的情况。
$('input').blur(function (){...})?
这不是你需要的吗?
jquery文档中有这样一条有趣的注释。
"模糊事件在失去焦点时被发送到元素。最初,此事件仅适用于表单元素,如。在最近的浏览器中,事件的域已扩展到包括所有元素类型。"
相关文章:
- Firefox-当不在输入控件上时隐藏焦点高亮显示
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如何在没有科尔多瓦插件的情况下隐藏软键盘,也不会失去焦点
- Primefaces对话框在隐藏后保持焦点
- 如何在隐藏的文本框上设置焦点
- 根据选择选项的焦点隐藏和显示
- 在Firefox中的keydown事件中隐藏元素时焦点顺序错误
- 为什么我不能在 Javascript 中或从代码隐藏中将焦点设置为 ASP.Net TextBox 控件
- 如何在焦点上隐藏jquery掩码中的括号和连字符
- 如何在涉及回发时从代码隐藏将焦点设置为文本框
- 失去父焦点时隐藏无序列表
- 在焦点上显示和隐藏不同的元素
- 失去焦点时隐藏纸质菜单
- 隐藏 iOS 键盘,保持对文本字段的焦点
- qTip2隐藏-组合无焦点、非活动和固定
- 在输入焦点时隐藏ios设备上的键盘
- 失去焦点时隐藏元素
- 当文本焦点(键盘打开)固定的标题隐藏(消失)
- jQuery 字体选择器:显示和隐藏焦点
- 当html组件被点击时隐藏焦点样式的问题