如何让DIV无法聚焦?

时间:2009-04-04 01:08:10

标签: javascript html focus

我遇到了有关HTML呈现的问题。

在IE7的dir =“rtl”文档中,当JavaScript尝试将焦点设置为DIV元素时(使用oElement.focus()方法),渲染变为混乱。上下文非常复杂,所以我认为最简单的解决方法是让DIV无法调整?

有没有办法让DIV无法集中注意力?

5 个答案:

答案 0 :(得分:20)

除非您添加 tabIndex ,否则<div>无法获得焦点。

如果您添加了tabIndex,则应通过

删除它
document.getElementById("yourElement").removeAttribute("tabIndex");

答案 1 :(得分:18)

另外,如果您想使可聚焦元素(表单输入元素等)成为可聚焦的。您可以设置:

tabIndex = "-1"

document.getElementById("yourElement").setAttribute("tabIndex", "-1");

答案 2 :(得分:4)

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

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

修改

我认为你可以通过每次聚焦时使它散焦来使一个元素“无法聚焦”。您可以通过以下方式完成此任务:

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

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

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

史蒂夫

答案 3 :(得分: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();

答案 4 :(得分:0)

通过添加CSS可以轻松解决此问题:

div_selector{
    pointer-events: none;
}

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

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