我正在编写一个 jQuery 插件,并使用 .on
和 .trigger
作为我的发布/订阅系统。但是,我想在不同的场景下触发多个事件。
这是否可以作为一个字符串来完成,就像 .on
方法一样?
目标:
$this.trigger("success next etc"); // doesn't work
当前解决方案:
$this
.trigger("success")
.trigger("next")
.trigger("etc"); // works, triggers all three events
有什么建议吗?
最佳答案
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");
关于javascript - jQuery .trigger() 多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850625/