Triggers 触发多事件

Triggers 触发多事件,triggers,jquery,Triggers,Jquery,我可以在trigger()中触发多个事件,还是在JQuery!中链接它们!?例如: $(element).trigger('event1 event2 event3'); 或 或 不支持 (element).trigger('event1').trigger('event2'); 是最优的吗 $(element).trigger('event1'); $(element).trigger('event2'); 由于每次触发事件时都不会重建包含$(元素)的jQuery对象。正如其他答案所指出

我可以在trigger()中触发多个事件,还是在JQuery!中链接它们!?例如:

$(element).trigger('event1 event2 event3');

不支持

(element).trigger('event1').trigger('event2');
是最优的吗

$(element).trigger('event1');
$(element).trigger('event2');

由于每次触发事件时都不会重建包含$(元素)的jQuery对象。

正如其他答案所指出的,最好的内置方法是:

$(element).trigger('event1').trigger('event2');
然而,我发现如果你到处都这样做,一个简单的插件会很好地清理它,允许使用空格分隔的语法(比如)。下面是此类插件的一个快速示例:

$.fn.triggerAll = function(events) {
    if(!events) return this; //don't blow up if .triggerAll() without params
    var self = this;         //keep a reference
    $.each(events.split(" "), function(i, e) { self.trigger(e); });
    return this;
};
然后可以使用空格分隔的事件名称来调用它,如下所示:

$(element).triggerAll('event1 event2 event3');

我确信最新的jQuery支持事件队列
$(element).trigger('event1').trigger('event2');
$.fn.triggerAll = function(events) {
    if(!events) return this; //don't blow up if .triggerAll() without params
    var self = this;         //keep a reference
    $.each(events.split(" "), function(i, e) { self.trigger(e); });
    return this;
};
$(element).triggerAll('event1 event2 event3');