この記事の例では、JavaScript デリゲート (Delegate) のブラーとフォーカスの使用法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
Opera (9.5b) は、すべてのフォーカス イベントとブラー イベントに対して正しく 2 回トリガーできません。
したがって、フォーカス イベントとブラー イベントのハンドラーは、イベントのキャプチャ フェーズに委任できます。
例 1 (リストクラス):
- リスト項目 1
;
;
その他のリスト項目
例 2 (フォームクラス):
その他のフォーム項目
ここで監視しているのは一番外側の ol ブロックです。blur イベントと focus イベントを使用する場合、それは ol 全体のみであるため、内部のコントロールの focus イベントと Blur イベントをどのように処理するか?
処理方法は以下のとおりです。
IE 処理:
コードをコピー
コードは次のとおりです:$('list').onmouseover = handleMouseOver;
$('list').onmouseout = handleMouseOut;
$('List').onfocusin = handleMouseOver;
$('List').onfocusout = handleMouseOut;
は次の形式でも記述できます:
コードをコピー
コードは次のとおりです:$('list').attachEvent('onfocusout',handleMouseOut, true);
パラメータを渡したい場合は、
などの中間関数を追加できます。
コードをコピー
コードは次のとおりです。$('list').attachEvent('onfocusout',function(イベント、myparams ){handleMouseOut(event、myparams);},true);
FF処理:
コードをコピー
コードは次のとおりです:$('list').addEventListener('focus',handleMouseOver, true);
$('list').addEventListener('blur',handleMouseOut,true);
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。