我有一个网站,用户可以动态添加小部件。这些小部件使用Peter Higgins pub / sub插件来$。(订阅)来自另一个'核心'模块的I $。(发布)事件。
我在自己的名字空间中有这样的小部件,如下所示: km.widget.name1, km.widget.name2, 等
因此$。(订阅)创建的句柄不是全局的。
当用户决定从自定义页面中移除小部件时,我不知道如何取消订阅这些小部件。
另外,我如何知道取消订阅哪个小部件?
答案 0 :(得分:0)
这并不能直接解决您的问题,但它可能会帮助您解决问题。 Sam Clearman This is a recent blog。他描述了一种在不使用该插件的情况下处理发布/订阅事件的方法:
jQuery自定义事件提供了一种内置方法,可以使用与Higgin的pub / sub插件功能相同且语法非常相似的方式使用发布订阅模式:将观察者绑定到文档。
这样做,您可以解决当前的问题。
答案 1 :(得分:0)
之前我没有使用过pubsub插件,但我只是看了the source code,看起来您可以取消订阅与订阅完全相同,只使用$.unsubscribe(...)
而不是{{ 1}}。
这是您已经知道的问题,问题是由您的小部件命名空间引起的吗?无论如何,我不是确实确定你的名字空间是什么意思,因为JavaScript不支持真正的命名空间(只是对象 - 我猜你正在使用它)。