jQuery 从插件中为多个监听器调度事件

标签 jquery events plugins listener dispatch

我正在寻找一种从 jQuery 插件分派(dispatch)事件的方法,以便它可以有多个该事件的监听器。我设置了插件,以便它返回对自身的引用,以便我稍后可以通过公共(public)方法添加监听器。

到目前为止我见过的唯一示例有一个事件处理程序,例如:

$.fn.foo = function( options ) {
    ...
    // trigger event
    options.eventHandler();
}

$('#bar').foo({ eventHandler: myEventHandler })

这是我唯一要做的选择,只需拥有一组已注册的事件处理程序并调用每个处理程序,或者我是否缺少更好的选择。

最佳答案

我会将一个数组放入构造函数/选项对象中。这是通常的做法:

$("").plugIn(
{
    prop: "value",
    foo: "bar",
    eventsToFire: [
        function () { },
        function () { },
        function () { }
    ]
});

插件会做一些类似的事情:

假设您正在编写一个应该在集合上执行的插件。

jQuery.fn.plugIn = function (options)
{
    return this.each(function ()
    {
        var i = options.eventsToFire.length;

        while (i--) options.eventsToFire[i]();
    });
};

关于jQuery 从插件中为多个监听器调度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517698/

相关文章:

asp.net-ajax - jQuery 停止在 ASP.NET MVC 中通过 Ajax 更新页面

c# - 带有 MEF 的 ASP.NET MVC4 : Requests to MEF Controllers Processed Serially

java - 是否有适用于 Netbeans 6.5 或更高版本的 Apache Velocity 插件?

java - bukkit 调度程序重复

javascript - DOM 更改事件 Firefox 扩展

javascript - 在 jquery 追加后或添加 innerHTML 后重绘页面

jquery - 启动 Thickbox onload 而不是单击

javascript - 在 JQuery 中为文本框创建按钮并动态分配单击功能

c# - 如何等待引发 C# 事件?

java - 如何在 Swing 中暂时禁用事件监听器?