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

查看:346
本文介绍了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天全站免登陆