0

ユーザーがウィジェットを動的に追加できる Web サイトがあります。これらのウィジェットは、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 に答える