2009-04-04 8 views
12

HTMLレンダリングに関する問題が発生しました。DIVを焦点不明にする方法は?

IE7のdir = "rtl"ドキュメントで、JavaScriptが(oElement.focus()メソッドを使用して)DIV要素にフォーカスを設定しようとすると、レンダリングが混乱します。文脈は非常に複雑です。だから私は、最も簡単な修正は、DIVの焦点を外せるようにすることだと思いますか?

DIVにフォーカスを当てない方法はありますか?

+0

可能重複[HTML要素を非フォーカス可能にするには?](http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable ) – thSoft

答えて

19

<div>はあなたが持っていない限り、フォーカスを受け取ることが可能であるべきではない

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

スティーブ:

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

...または(あなたのHTML内にインラインJavascriptを使用して):あなたは経由してこれを達成することができますtabIndexを追加しました。あなたがtabIndexを追加した場合は、unfocussableとしてfocussable要素(フォーム入力要素など)を作成したい場合は

、あなたは、

document.getElementById("yourElement").removeAttribute("tabIndex"); 
+1

私はこれが非常に古かったと知っていますが、Firefoxがタブインデックスを持たなくてもdivにフォーカスを得ることができるという私の経験からわかっています。 (他のグーグルのためのFYIとして追加されました) – Vaccano

+0

'contenteditable =" true "'のdivもフォーカスを受け取ることに注意してください。 – 10basetom

6

私はあなたが要素「非フォーカス可能」作ることができるかどうかわからないんだけど、あなたは確かにそのblur方法使用して、特定の時点でそれを非集中することができます:

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

EDITを:

私は、焦点を合わせるたびに焦点をずらすことで、「フォーカスを失う」要素を作ることができると思います。

+0

これをぼかすには、すでにフォーカスがあることを意味します。 フォーカスを無効にするにはどうすればいいですか? –

+0

「フォーカスできない」要素を作ることが可能かどうかはわかりません。あなたの質問を慎重に読んでいないと申し訳ありません! –

18

さらにてそれを削除する必要があります。あなたは、設定することができます。

以下
tabIndex = "-1" 

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

はjqueryのを使用してunfocusable 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(); 
関連する問題