отписаться от опубликованного события с помощью JavaScript - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть веб-сайт, к которому пользователи могут динамически добавлять виджеты.Эти виджеты используют плагин Peter Higgins pub / sub для $. (Подписаться) на событие, которое я $. (Публикую) из другого «основного» модуля.

У меня есть виджеты в их собственном пространстве имен, напримерэто: km.widget.name1, km.widget.name2 и т. д.

Таким образом, дескрипторы, созданные $. (подписка), не являются глобальными.эти виджеты, когда пользователь решает удалить виджет со своей пользовательской страницы.

Кроме того, как я узнаю, от какого виджета отказаться от подписки?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

Я раньше не использовал плагин pubsub, но я просто посмотрел на исходный код и похоже, что вы можете отписаться точно так же, как вы подписываетесь, просто используя $.unsubscribe(...) вместо$.subscribe(...).

Это то, что вы уже знаете, и проблема вызвана пространством имен вашего виджета?Во всяком случае, я не действительно уверен в том, что вы подразумеваете под пространством имен, поскольку JavaScript не поддерживает истинные пространства имен (только объекты, которые, как я догадываюсь, это то, что вы используете).

0 голосов
/ 16 декабря 2010

Это не решит вашу проблему напрямую, но вполне может помочь вам. Это недавний блог Сэма Клирмана. Он описывает способ обработки событий публикации / подписки без использования этого плагина:

Пользовательские события jQuery предоставляют встроенные средства для использования шаблона публикации подписки таким образом, который функционально эквивалентен и синтаксически очень похож на плагин Higgin pub / sub: просто привязывайте наблюдателей к документу.

Делая это таким образом, вы сможете решить текущие проблемы.

...