JS/ES – JQuery – イベントリスナーの登録

on()/off()

概要

on()メソッドは引数にイベント名とコールバック関数を指定する。登録されたイベントに対して対応するコールバックが実行されるようになる。

off()メソッドは引数にイベント名と、オプションでコールバック関数を指定する。コールバックを指定した場合はその関数だけが削除され、指定しなければDOMのすべてのリスナーが削除される。

書式

[DOM].on('event', callback)

[DOM].off('event'[, callback])

実行例

以下のHTMLでは、2つのp要素と3つのボタンを配置する。

  • Switchボタンには、あらかじめボタンのクリックに対してp1の表示を切り替えるリスナーが登録されている
  • AddボタンはSwitchボタンに、p2の表示を切り替えるもう1つのリスナーを登録する
  • DeleteボタンはSwitchに登録された特定の/あるいは全てのリスナーを削除する

off()にリスナーを指定した場合、Deleteボタンを押すとp2が反応しなくなるがp1は反応し続け、Addボタンを押すとp2の反応も復活する。

off()にリスナーを指定しない場合、Deleteボタンを押すとp1とp2のどちらも反応しなくなる(Switchボタンのリスナーが2つとも削除されるため)。その後Addボタンを押すとp2の反応だけが復活する。

特定イベント専用のリスナー

概要

たとえばclickイベントの場合、DOMのメソッドとしてclick()が準備されていて、その引数にリスナーを指定して登録できる。

実行例

以下の例は、p要素に対してmouseovermouseleaveの二つのイベントに対するリスナーを登録する例。

リスナーにデータを渡す

リスナーに直接引数を指定して渡すことはできないが、eventオブジェクトを通じてデータを渡すことができる。

  • データは連想配列で、イベント名の次、コールバックの前に指定する。
  • コールバックの指定時、引数にイベントオブジェクトを明示する
  • コールバック内ではイベントオブジェクトのdata属性を通じてデータを取得する

書式

.on('event', {key: value, ...}, callback)

.click({key: value, ...}, callback)

実行例

以下の例は、ボタン1を押すと数値データを1つ、ボタン2を押すと数値データと文字データが1つずつコールバックに渡され、それらが表示される。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です