После некоторого исследования кажется, что jQuery 1.7 предоставляет простой способ внедрить механизм публикации / подписки. (найдено здесь ) Для использования механизма публикации / подписки можно использовать следующий код:
(function ($, window, undefined) {
var topics = {};
jQuery.Topic = function (id) {
var callbacks, method, topic = id && topics[id];
if (!topic) {
callbacks = jQuery.Callbacks();
topic = {
publish: callbacks.fire,
subscribe: callbacks.add,
unsubscribe: callbacks.remove
};
if (id) {
topics[id] = topic;
}
}
return topic;
};
})
Чтобы подписаться на событие, делается следующее:
$.Topic("message").subscribe(function () {
console.log("a publish has occurred");
});
Для публикации сообщения делается следующее:
$.Topic( "message" ).publish(data);
«Сообщение» - это название события. Аргумент data содержит любую информацию, которую вы хотите передать подписчикам.
Чтобы отменить подписку, вы должны передать функцию, которая была подписана:
$.Topic( "message" ).unsubscribe(funcSubscribedToBefore);