ライブラリのページにカスタマイズ可能なフォーム要素があります。使用するイベントハンドラーを見つけようとしているので、それとやり取りするときにどのJavaScriptイベントが発生するかを確認したいと思います。
Chrome Web Developerを使用してどうすればよいですか?
ライブラリのページにカスタマイズ可能なフォーム要素があります。使用するイベントハンドラーを見つけようとしているので、それとやり取りするときにどのJavaScriptイベントが発生するかを確認したいと思います。
Chrome Web Developerを使用してどうすればよいですか?
回答:
同様に、ターゲット要素を右クリックして、「要素の検査」を選択できます。開発フレームの右側を下にスクロールします。下部にあるのは「イベントリスナー」です。ツリーを展開して、要素に関連付けられているイベントを確認します。これがバブリングによって処理されるイベントで機能するかどうかはわかりません(私はそうではないと思います)
monitorEvents関数を使用できます。
要素を確認し(right mouse click
→ Inspect
表示されている要素で→ またはElements
Chromeデベロッパーツールのタブに移動して必要な要素を選択)、Console
タブに移動して次のように記述します。
monitorEvents($0)
この要素の上にマウスを移動するか、要素にフォーカスまたはクリックすると、発生したイベントの名前とそのデータが表示されます。
このデータの取得を停止するには、これをコンソールに書き込むだけです。
unmonitorEvents($0)
$0
Chromeデベロッパーツールによって選択された最後のDOM要素です。そこに他のDOMオブジェクトを渡すことができます(たとえば、getElementById
またはの結果querySelector
)。
イベントの「タイプ」を2番目のパラメータとして指定して、監視対象のイベントを事前定義されたセットに絞り込むこともできます。例えば:
monitorEvents(document.body, 'mouse')
この機能がどのように機能するかを示す小さなgifを作成しました。
MouseEvent
検索する必要がありますか?
jQuery(少なくともバージョン1.11.2)の場合、次の手順でうまくいきました。
$._data(($0), 'events');
「コンソール」でhandler:
値をダブルクリックします。そして、車輪の再発明をやめて、バニラJSイベントの使用を開始する時が来ました... :)
jqueryプラグインの場合、スクリプトが作成するようなカスタムイベントは表示されません。例えば :
jQuery(function($){
var ThingName="Something";
$("body a").live('click', function(Event){
var $this = $(Event.target);
$this.trigger(ThingName + ":custom-event-one");
});
$.on(ThingName + ":custom-event-one", function(Event){
console.log(ThingName, "Fired Custom Event: 1", Event);
})
});
Chrome開発ツールのスクリプトの下にあるイベントパネルに「Something:custom-event-one」と表示されない