DOM 要素に jQuery を使用してイベント ハンドラーをアタッチします。
1)直接 —
$(#elemId).bind("click",function(){ …//event handler code}); OR
2) 委任による。—
$(document).delegate("#elemId","click",function(){ …//event handler code});
また、これらの添付されたイベント ハンドラーをコードから手動で実行する必要がある状況にも遭遇します。これを行うには、要素に対して jQuery で .trigger() API を使用できます。
$(#elemId).trigger("click")
シナリオによっては、アタッチしたイベント ハンドラーのみを実行したいが、そのイベントに関連付けられている既定のアクションを実行したくない場合があります。要素の jQuery で .triggerHandler() API を使用することで、これを実現できます。
$(#elemId).triggerHandler("click");
たとえば、「チェックボックス」のリストに「クリック」イベントをアタッチし、チェックボックスのいずれかがオン/オフになったときにイベント ハンドラーを実行できます。ここで、チェックボックスのクリックイベントのデフォルトのアクションは、そのチェックボックスがチェックされる/チェックされない(つまり、チェックボックスのステータスが変更される)ことです。いくつかのシナリオでは、クリックされたときにチェックボックスのステータスを変更したくない場合がありますが、イベントハンドラーでコードを実行したい場合があります.上記で説明したように、.trigger の代わりに .triggerHandler() を呼び出すことにより、jQuery でこれを実現できます。 () でイベントを発生させます。
ただし、委譲によって DOM 要素にイベントをアタッチすると、これは機能しません。イベント委任の場合にデフォルト アクションを実行せずにイベント ハンドラーを実行する他の方法は何ですか?
次の JSfiddles の違いを確認してください: 直接イベント処理の場合:
http://jsfiddle.net/g2TWh/7/
委任されたイベント処理の場合:
http://jsfiddle.net/g2TWh/8/
(「実行」をクリックしても、イベントハンドラー関数のアラートは表示されないことに注意してください)