2011-10-27 8 views
0
  1. このイベントを持つページ上のすべてのDOM要素について、「フォーカス」するイベントリスナーを追加できる既存のメカニズムはありますか?もしそうでなければ、どうすればいいのですか?JavaScript:要素に関係なくイベントをキャプチャする

  2. DOMエレメントがイベントを発生させるときはいつでもconsole.log(何か)したいと思います。どうすればいい?

EDIT:任意のフレームワークがなければ

答えて

1

:)をしてくださいあなたは、本体またはHTML要素にイベントをバインドすることができます。またはあなたのhtmlのすべてを囲む他の要素。

それとも、jQueryのを使用したい場合は、身体、HTML、またはいずれかを文書化するために、リスナーをバインドすることができるはずですので、あなたは、DOMを通じてアップ

$("*").bind("focus", function(e){ 
    console.log("something"); 
}) 
+0

ページにフォーカスイベントを「すべての」の要素をバインド??? – Juri

+0

あなたは$(文書)を書くことができましたが、OPは彼の必要性を指定していませんでした。 $( "*")の方がはるかに遅いが、要素固有のログに記録する必要があるように思える。 –

0

イベント「バブル」のような何かを行うことができます他の親要素(divなど)に含まれている要素によってトリガされたすべてのイベントをリッスンします。 jQueryのを使用して例えば

、あなたはこのようにそれを行うことができます:

$(document).bind('focus', function(e) { console.log(e); }); 

これは、最初にイベントをトリガーするものの要素に関係なく、すべてのフォーカスイベントを、ログに記録されます。

+0

...バブルがキャンセルされない限り –

+0

このアサーションの問題は、特定のイベント(それらのうちの1つであるonfocus)が(IEでは)バブルしないということです。あなたは一般化することはできません。各イベントは特別です。 –

0

:input疑似セレクタをjQueryで使用できます。

$(':input').focus(function(e){ 
    console.log(e); 
}); 

これはおそらくあなたが探していると思われる入力要素にのみ適用されます。

関連する問題