jQuery .trigger() 多个事件 [英] jQuery .trigger() multiple events

查看:37
本文介绍了jQuery .trigger() 多个事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个 jQuery 插件并使用 .on.trigger 作为我的发布/订阅系统.但是,我想在不同的场景中触发多个事件.

I'm writing a jQuery plugin and using .on and .trigger as my pub/sub system. However, I want to trigger multiple events in different scenarios.

这是否可以像 .on 方法一样作为一个字符串来做?

Is this possible to do as one string, like the .on method?

目标:

$this.trigger("success next etc");    // doesn't work

目前的解决方案:

$this
    .trigger("success")
    .trigger("next")
    .trigger("etc");                  // works, triggers all three events

有什么建议吗?

推荐答案

JQuery 本身不支持触发多个事件,但是你可以编写自定义扩展方法 triggerAll

JQuery itself does not support triggering multiple events, however you could write custom extension method 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");

这篇关于jQuery .trigger() 多个事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆