1

我有一个锚点列表,这些锚点的样式可以改变焦点和悬停时的外观。在它们被点击后,它们应该恢复正常;失去焦点/变得模糊。这在 Google Chrome 中按预期工作,但在 Firefox 和 IE 中却没有,它保持焦点。为什么呢?

这是我的代码:http: //jsfiddle.net/8fTQs/

我的猜测是 FF 和 IE 期望在单击锚点时重新加载页面,但由于这些只是指一个锚点(#; 哈希)它不会重新呈现页面(但如果它被重新加载它当然会重新渲染并失去焦点)。

如何解决这个问题?

谢谢!

编辑:我设置了正确的文档类型。

4

3 回答 3

1

你仍然需要一个:focus样式来帮助键盘导航,所以你最好不要删除它。

点击后 Chrome 不会保持焦点,但 FF 和 IE 会。您可以做的是使行为正常化,但每次单击时都会模糊链接 - 但只是单击!

一个简单$('a').click(function () {this.blur();})的会模糊元素(模糊=失去焦点)但浏览器(或只是 jQuery)也会在您按下键时触发“点击”事件Enter

所以一个快速而肮脏的解决方案是:$('a').mouseup(function () {this.blur();})

于 2013-09-06T23:16:24.793 回答
0

即使页面没有重新加载,将锚点聚焦在点击上也是正确的行为:它使标签导航在该点之后正常工作。

如果您只想在单击锚点时进行样式设置,那么听起来您想成为:active锚点的样式,而不是锚点。:focus

于 2012-06-03T19:41:09.243 回答
0

正确的行为是鼠标单击后焦点应该留在锚点上(就像 FF 和 IE 现在所做的那样)。

已注册的chromium 错误已修复,2014 年 8 月 14 日创建的补丁正在审核中。应该在即将到来的更新中得到修复。

于 2014-08-29T07:08:25.130 回答