.trigger()
重複したイベントを処理するためにjQuery をよく使用します。
たとえば、ナビゲーション用の 4 つのボタン (上、下、左、右) を持つウィジェットがあり、イベント ハンドラーが次のように各ボタンにバインドされているとします。
$('#up').on('click', function() {
// move up
...
});
これまでのところ、ウィジェットはうまく機能しており、各ボタンが押さup/down/left/right arrow key
れたときとまったく同じように機能するように、キーボード ショートカットを追加したいと考えています。up/down/left/right button
.trigger()
そのような場合、キーボードショートカットをそれらのボタンのラッパーとして機能させるためによく使用します。
$(document).on('keydown', function(e) {
// up arrow key
if (e.keyCode == 38) $('#up').trigger('click');
...
});
そのように使用するのは悪い習慣.trigger()
ですか?
ライブラリをブラックボックスとして扱う場合に非常に重宝すると思います。ライブラリの制御に役立つボタンが既にいくつかある場合は、ライブラリの API を知らなくても、それらのボタンでクリック イベントをトリガーすることにより、ライブラリの機能を使用できます。