16

我遇到了一个关于 HTML 渲染的问题。

在 IE7 的 dir="rtl" 文档中,当 JavaScript 尝试将焦点设置到 DIV 元素(使用 oElement.focus() 方法)时,呈现变得混乱。上下文非常复杂,所以我想最简单的解决方法是让 DIV 无法聚焦?

有什么办法可以让 DIV 不被聚焦?

4

5 回答 5

27

除非您添加了tabIndex<div>否则不应获得焦点。

如果已添加tabIndex,则应通过以下方式将其删除

document.getElementById("yourElement").removeAttribute("tabIndex");
于 2009-04-04T01:40:57.330 回答
22

此外,如果您想将可聚焦元素(表单输入元素等)设为不可聚焦。您可以设置:

tabIndex = "-1"

document.getElementById("yourElement").setAttribute("tabIndex", "-1");
于 2012-02-02T10:03:10.080 回答
4

我不确定您是否可以使元素“不可聚焦”,但您当然可以使用它的blur方法在特定时间点将其取消聚焦:

document.getElementById("myElement").blur();

编辑:

我认为您可以通过在每次聚焦时散焦来使元素“无法聚焦”。您可以通过以下方式完成此操作:

document.getElementById("myElement").onfocus = function() {
    this.blur();
};

...或(在您的 HTML 中使用内联 Javascript):

<div onfocus="this.blur();"></div>

史蒂夫

于 2009-04-04T01:17:44.123 回答
0

下面是使用 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();
于 2017-09-20T09:49:41.647 回答
-3

一个简单的修复可以通过添加 CSS 来完成:

div_selector{
    pointer-events: none;
}

或者通过 jQuery 添加相同的 css:

$(div_selector).css('pointer-events', 'none');

于 2019-11-19T17:09:20.137 回答