jQueryにはDOM要素のイベントハンドラーを呼び出すためのメソッドとして .trigger()
と .triggerHandler()
があるが、これらのメソッドには下記のような違いがある。
-
.triggerHandler( "event" )
は対象要素の.event()
メソッドを**呼び出さない。**例えばフォーム要素で.triggerHandler( "submit" )
を呼び出しても、.submit()
は呼び出されない。 -
.trigger()
は複数要素を対象としたjQueryオブジェクトでは全ての要素に対してイベントハンドラーを実行する。.triggerHandler()
は最初のオブジェクトのイベントハンドラーのみ呼び出す。 -
.triggerHandler()
で発生したイベントは**DOM階層を辿らない。**対象要素でイベントが処理されなければ、何も起こらない。 -
.triggerHandler()
はイベントハンドラーで最後にreturn
された値を戻す。何もイベントハンドラーがなければ、undefined
を返す。.trigger()
はjQueryオブジェクトを返す。
詳しくはドキュメントを参照。