我遇到了一个关于 HTML 渲染的问题。
在 IE7 的 dir="rtl" 文档中,当 JavaScript 尝试将焦点设置到 DIV 元素(使用 oElement.focus() 方法)时,呈现变得混乱。上下文非常复杂,所以我想最简单的解决方法是让 DIV 无法聚焦?
有什么办法可以让 DIV 不被聚焦?
我遇到了一个关于 HTML 渲染的问题。
在 IE7 的 dir="rtl" 文档中,当 JavaScript 尝试将焦点设置到 DIV 元素(使用 oElement.focus() 方法)时,呈现变得混乱。上下文非常复杂,所以我想最简单的解决方法是让 DIV 无法聚焦?
有什么办法可以让 DIV 不被聚焦?
除非您添加了tabIndex,<div>
否则不应获得焦点。
如果已添加tabIndex
,则应通过以下方式将其删除
document.getElementById("yourElement").removeAttribute("tabIndex");
此外,如果您想将可聚焦元素(表单输入元素等)设为不可聚焦。您可以设置:
tabIndex = "-1"
document.getElementById("yourElement").setAttribute("tabIndex", "-1");
我不确定您是否可以使元素“不可聚焦”,但您当然可以使用它的blur
方法在特定时间点将其取消聚焦:
document.getElementById("myElement").blur();
编辑:
我认为您可以通过在每次聚焦时散焦来使元素“无法聚焦”。您可以通过以下方式完成此操作:
document.getElementById("myElement").onfocus = function() {
this.blur();
};
...或(在您的 HTML 中使用内联 Javascript):
<div onfocus="this.blur();"></div>
史蒂夫
下面是使用 jquery 使 DIV 无法聚焦的一些方法。
// Set the tabindex atribute to -1.
1)$("divid").attr('tabindex','-1');
// Remove the tabindex atribute if exists.
2) $("divid").removeAttr('tabindex');
// This is third way.
3) $("divid").blur();
一个简单的修复可以通过添加 CSS 来完成:
div_selector{
pointer-events: none;
}
或者通过 jQuery 添加相同的 css:
$(div_selector).css('pointer-events', 'none');