2010-12-15 66 views
0

我有一个网站,用户可以动态地添加小部件。这些小部件使用Peter Higgins pub/sub插件$(订阅)从另一个'core'模块发布I $(发布)的事件。退订使用JavaScript发布的事件

我有自己的名字空间小部件是这样的: km.widget.name1, km.widget.name2, 等

因此,通过创建$手柄(订阅)不是全局性的。 。

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

此外,我如何知道从哪个部件取消订阅?

+1

您是否找到一个很好的解决方案?我们很快就会遇到同样的问题。看看你是如何解决它会很有趣。 – henriksen 2011-04-06 11:57:04

回答

0

这并不能直接解决你的问题,但它可能会很好地帮助你。 Sam Clearman的This is a recent blog。他描述的方式来处理发布/订阅事件,而使用该插件:

jQuery的自定义事件提供了一个内置的手段来使用发布的方式,在功能上等同订阅模式,而语法上很相似,以Higgin的pub/sub插件:将观察者绑定到文档。

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

+0

我以前见过这篇文章,我只是不相信这是答案。 – Shawn 2010-12-20 21:27:35

0

我以前没有使用过PubSub的插件,但我只是看了看the source code,它看起来像你可以退订完全一样为您订制,只是用$.unsubscribe(...)而非$.subscribe(...)

这是你已经知道的东西,问题是由你的小部件命名空间引起的?我不是真的无论如何,由于JavaScript不支持真正的名称空间(只是对象 - 我猜测你正在使用的是),所以肯定了你的意思。