私は jQuery プラグインを書いていて、.on
それを.trigger
pub/sub システムとして使用しています。ただし、さまざまなシナリオで複数のイベントをトリガーしたいと考えています。
メソッドのように、これを 1 つの文字列として実行することは可能ですか.on
?
ゴール:
$this.trigger("success next etc"); // doesn't work
現在の解決策:
$this
.trigger("success")
.trigger("next")
.trigger("etc"); // works, triggers all three events
助言がありますか?
ベストアンサー1
JQuery自体は複数のイベントのトリガーをサポートしていませんが、カスタム拡張メソッドを記述することはできます。triggerAll
(function($) {
$.fn.extend({
triggerAll: function (events, params) {
var el = this, i, evts = events.split(' ');
for (i = 0; i < evts.length; i += 1) {
el.trigger(evts[i], params);
}
return el;
}
});
})(jQuery);
次のように呼び出します。
$this.triggerAll("success next etc");