触发多事件

我可以在trigger()中触发多事件或在JQuery中链接它们吗? 例如:

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

要么

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

要么

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

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

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

但是,我发现如果你在这个地方做这个,一个简单的插件可以很好地清理它,允许空格分隔的语法(就像其他 jQuery 方法一样 )。 这是一个这样一个插件的快速示例:

 $.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'); 

你可以在这里测试一下

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

不受支持。

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

是最佳的

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

因为每次触发事件时都没有重建包含$(元素)的jQuery对象。