使用JavaScript取消订阅已发布事件
我有一个网站,用户可以动态添加小部件。这些小部件使用Peter Higgins pub/sub插件来订阅从另一个“核心”模块发布的事件 我在自己的名称空间中有如下小部件: km.widget.name1, km.widget.name2, 等等 因此,$.subscribe创建的句柄不是全局的 我不知道当用户决定从他们的自定义页面删除小部件时,如何取消订阅这些小部件使用JavaScript取消订阅已发布事件,javascript,javascript-events,widget,publish-subscribe,Javascript,Javascript Events,Widget,Publish Subscribe,我有一个网站,用户可以动态添加小部件。这些小部件使用Peter Higgins pub/sub插件来订阅从另一个“核心”模块发布的事件 我在自己的名称空间中有如下小部件: km.widget.name1, km.widget.name2, 等等 因此,$.subscribe创建的句柄不是全局的 我不知道当用户决定从他们的自定义页面删除小部件时,如何取消订阅这些小部件 另外,我如何知道要取消订阅哪个小部件?这并不能直接解决您的问题,但它可能会很好地帮助您。山姆·克莱曼。他描述了一种不使用该插件处理
另外,我如何知道要取消订阅哪个小部件?这并不能直接解决您的问题,但它可能会很好地帮助您。山姆·克莱曼。他描述了一种不使用该插件处理发布/订阅事件的方法: jquerycustomevents提供了一种内置的方式来使用publish-subscribe模式,这种方式在功能上等同于Higgin的pub/sub插件,在语法上也非常类似:只需将观察者绑定到文档
通过这种方式,您可能可以解决当前的问题。我以前没有使用过pubsub插件,但我只是浏览了一下,看起来您可以像订阅一样取消订阅,只需使用$。取消订阅。。。而不是美元。订阅
这是您已经知道的,并且问题是由您的小部件名称空间引起的吗?无论如何,我不太清楚你所说的名称空间是什么意思,因为JavaScript不支持真正的名称空间,只支持对象——我猜这就是你正在使用的对象。我以前看过这篇文章,但我不相信这是答案。你找到了一个好的解决方案吗?我们很快就会遇到同样的问题。我很想看看你是怎么解决的。