2010-12-15 62 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不支持真正的名稱空間(只是對象 - 我猜測你正在使用的是),所以肯定了你的意思。