triggerHandlerメソッド

triggerHandlerメソッドは、 要素にバインドされたすべてのイベントハンドラを 起動することができます。このメソッドは triggerメソッドと 同様に動作しますが、いくつかの違いがあります: イベントハンドラは実行されますが、標準的な イベントは発生しません。例えば triggerHandler('submit')を 実行しても、submitイベントは発生しません。 triggerHandlerメソッドは セット内の最初の要素に対してのみ作用します。 triggerHandlerによって起動されたイベントは DOM要素の階層をバブリングしません。 triggerHandlerはjQueryオブジェクトを返さず、 最後に呼び出されたハンドラから取得した値を返します。 ハンドラが実行されない場合は、undefinedを返します。

構文

最初のパラメータとして、文字列形式のイベントタイプを渡すことができます。 2番目のオプションパラメータとして、ハンドラに渡す追加パラメータを含む 配列またはオブジェクトを指定できます:

javascript$(セレクタ).triggerHandler(イベントタイプ, [追加パラメータ]);

最初のパラメータとして、jQuery.Eventオブジェクト形式の イベントを渡すこともできます:

javascript$(セレクタ).trigger(イベント, [追加パラメータ]);

例

#test1を持つボタンをクリックしたときに、 入力フィールドがフォーカスを受け取り、コンソールに 'Focused'と表示されるようにしましょう。 つまり、ハンドラ関数とフォーカスイベントの両方が実行されます。 #test2を持つ2番目のボタンをクリックした場合、 ハンドラ関数のみが実行され、入力フィールドはフォーカスを受け取りません:

html<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
javascript$('#test1').click(function() {
  $('input').trigger('focus');
});

$('#test2').click(function() {
  $('input').triggerHandler('focus');
});

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

関連項目

  • triggerメソッド、
    指定されたタイプのイベントに対して要素にバインドされたすべてのイベントハンドラを起動できます
  • onメソッド、
    要素にイベントハンドラをバインドすることができます