0

我有一个用户可以动态添加小部件的网站。这些小部件使用 Peter Higgins pub/sub 插件来处理来自另一个“核心”模块$.(subscribe)的事件。$.(publish)

我在自己的名称空间中有小部件,如下所示:

km.widget.name1、
km.widget.name2
等。

所以创建的句柄$.(subscribe)不是全局的。

当用户决定从他们的自定义页面中删除小部件时,我不知道如何取消订阅这些小部件。

另外,我怎么知道要取消订阅哪个小部件?

4

2 回答 2

0

这并不能直接解决您的问题,但它可能会很好地帮助您。 这是Sam Clearman 最近的博客。他描述了一种在不使用该插件的情况下处理发布/订阅事件的方法:

jQuery 自定义事件提供了一种内置方法来使用发布订阅模式,其功能与 Higgin 的 pub/sub 插件在功能上等效,语法上非常相似:只需将观察者绑定到文档。

这样做,您可能能够解决当前的问题。

于 2010-12-15T23:22:09.347 回答
0

我之前没有使用过 pubsub 插件,但我只是看了一眼源代码,看起来你可以像订阅一样取消订阅,只需使用$.unsubscribe(...)而不是$.subscribe(...).

这是您已经知道的事情,并且问题是由您的小部件命名空间引起的吗?无论如何,我不确定你所说的命名空间是什么意思,因为 JavaScript 不支持真正的命名空间(只是对象——我猜你正在使用它)。

于 2011-02-11T20:12:09.350 回答