使用jQuery实现简单的发布/订阅模式

8

使用jQuery的 triggeron 方法作为廉价且易操作的发布订阅方式是否违反最佳实践?

以下代码可以正常运行:

$(document).on('my:custom:event',function(){
    alert('this is an event');
});

并且之后:

$(document).trigger('my:custom:event');
//=> alerts

很显然,一个真正的jQuery发布/订阅插件 安装起来很简单-我想看到的是:

  • 是否有任何潜在的陷阱?
  • 在 StackOverflow 示例中使用此方法是否可行,以展示事件驱动行为,而不会通过包含一些插件代码来使 OP 感到困惑?

作为答案,这将很好地解决“注意事项”部分。 - philwinkle
你的问题的第二部分应该在http://meta.stackoverflow.com上提问(尽管我相信之前已经有人问过了 - 所以你可能要去找一下)。 - Benjamin Gruenbaum
@BenjaminGruenbaum 目前没有其他答案 - 请把您的建议作为答案留下,我会接受。 - philwinkle
1个回答

7

如果您的使用情况足够简单-可以直接使用:

您可以在任意对象上使用它

var obj = {};$(obj).on(...) .

请注意,如果您在文档中使用它,实际上就创建了一个全局隐藏的依赖关系。此外,为客户端自己编写pubsub约为20行代码,因此这是另一个需要考虑的因素,因为jQuery依赖并不是您总是想要拥有的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接