LoginSignup
11
12

More than 5 years have passed since last update.

1クリックでイベントハンドラのコードを探す方法

Posted at

Web のフロントエンド開発といえば、イベント処理を避けて通ることはできませんよね。UI 作っていて、こういうこと思ったことないですか?

「このボタン押した時、思ったのと違う動きしてるな」

こういうことを思う時は、大抵イベントハンドラが正しく設定されていません。そこで、その要素についているイベントハンドラを探すことになります。大抵はこんな感じでイベントハンドラを探すのではないでしょうか:

  1. document.querySelector なんかを呼んで、その要素への参照を取得している部分を探して、要素の代入されている変数名を調べる
  2. 調べた変数名でソースコードを検索して、イベントハンドラを設定している部分を見つける
  3. 見つけたイベントハンドラの中身を読む

これは結構面倒です。まず、コードをたくさん読んだり探したりしなくちゃいけません。

そこで使えるのがインスペクタです。Firefox の開発ツールインスペクタを使うと、ソースコードを読まなくても、その要素についているイベントハンドラを見つけられます。

見つけ方

まず開発ツールを起動します。メニューのツールから、Web開発を選んで、その後インスペクタを選びます。

スクリーンショット_2016-06-07_18_33_35.png

そして開発ツールのインスペクタタブの左どなりにある、スクリーンショット 2016-06-07 18.23.04.pngアイコンをクリックします。

そうするとブラウザの画面上でマウスポポインタが重なった要素が、インスペクタで表示されるようになります。

select-element.png

調査したい要素の上でクリックします。そうすると、インスペクタでその要素が協調されたままになります。その後、インスペクタの要素の横についている "ev" をクリックすると、その要素についているイベントハンドラがポップアップで表示されます。

event-handler.png

ポップアップをクリックすると、展開されて、ハンドラのコードが表示されます。

expand-handler.png

まとめ

これでコードを読まなくても、イベントハンドラを探すことができるようになりました。

複数ハンドラが設定されれる場合はそれぞれ分けて表示されますし、ハンドリングするイベントもちゃんと表示されます(スクリーンショットのハンドラは click イベントをハンドリングしています)。変なハンドラが付いているときや、同じハンドラが二重についている場合なんかも、一目でわかって楽ですね。

みなさまのデバッグライフが、少しでも楽になれば幸いです。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12