javascript - jQuery .trigger() 多个事件

标签 javascript jquery triggers

我正在编写一个 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/

相关文章:

javascript - 使用 Javascript 将输入值作为变量传递

javascript - 如果使用 VLOOKUP,onEdit() 不会触发

mySQL 触发器 : Setting empty to NULL, 在最后一列上不起作用

jquery - 使用触发器()在最近的 div 上强制单击

javascript - jquery-ui 对话框 : Make a button in the dialog the default action (Enter key)

javascript - JQuery Mobile Panel Widget – 打开可折叠列表会导致在扩展到页面高度之外时跳转滚动到页面 div 的底部。为什么?

javascript - 如何将 anchor 标记附加到 div 的父级?

javascript - 在页面加载之前加载进度条

javascript - 如何使用 Meteor.js、Twitter 和 Oauth 发布推文

javascript - 警报不配合输入