2009-04-12 15 views
0

私は、構造が複雑な面倒なWebページを1つ見ました。 DIVをマウスでクリックするとすべてがOKです。しかし、javascript(つまりdivElement.focus)によってフォーカスされている場合。レイアウトが乱雑に変わります。これはIE7/8でのみ発生します。Click-to-focusとjavascriptによるフォーカスの違いは何ですか?

IEでは、クリックフォーカスとJavaScriptによるフォーカスの違いはありますか?

答えて

3

イベントを発生させると、イベントが発生しません。関連コードを見ることなく、focusイベントを発生させた場合に呼び出されていないハンドブックがあるclickハンドラがあると推測されます。

あなたはclickを発射、代わりに、試してみてください:

var clickEvent; 
if(document.createEvent) { 
    clickEvent = document.createEvent('click'); 
    clickEvent.initMouseEvent('click'); 
    divElement.dispatchEvent(clickEvent); 
} else { 
    // Semi-pseudocode for IE, not tested, consult documentation if it fails 
    clickEvent = document.createEventObject(); 
    divElement.fireEvent('onclick'); 
} 

それとも、jQueryのものにしている場合:

$(divElement).click(); 

プロトタイプのための同様のソリューションは、イベントの検索が(同様にあります。シミュレート)。

+0

実際には、他のクリックイベントはありません。 他の要素のonbeforedeactivatedイベントハンドラでフォーカスが呼び出されます。 –

+1

Morgan Cheng、私は間違っているかもしれませんが、関係するコードを見ずに誰かがあなたにもっと明確な答えを与えることはできません。 – eyelidlessness

0

フォーカス操作の定義は、入力(キーボードまたはマウス)を特定の要素(通常は入力フィールド)に移動することです。要素がフォーカスを取得すると、OnFocusイベントが発生します。フォーカスが失われると、OnBlurイベントが発生します。

クリックして取得するのは、上記の2つに必ずしも関連しないOnClickイベントです。

0

これはIE7/8でのみ発生します。

ええと、それはIE関連のバグだと確信しています。驚かない。正当なJavascriptイベントがある場合、すべてのブラウザで一様に発生するはずです。

関連する問題