The Publish/Subscribe (PubSub) pattern is a variation of the Observer pattern. It allows you to decouple and remove dependencies between your objects which can make your objects easier to re-use.
The PubSub sits between the objects. So multiple objects can publish a single topic. This decoupling is a big advantage of the PubSub pattern because modules can interact with each other without knowing each other's specifics. This is also a disadvantage. When you publish a topic you have to assume that there's a subscription on the end listening. If there isn't you won't receive any notification that something broke. It'll fail silently because no error actually happened.
var topic = 'myTopic';
// this will through an error
$.publish(topc, 'hello world');
// this will fail but no error will happen
$.publish('anothrTopic', 'hello world');
Use the Observer pattern when watching events in the same object and use PubSub when you need to have other objects call your methods in your object.
The library I like to use is jquery-tiny-pubsub. It ties into jQuery's event system so you know it's robust for whatever you want to do. The only drawback is that since it's event driven the first argument your event function receives is the event itself. So you'll need to ignore the first argument in your subscribed callbacks. You could use that first argument to find out the name of the subscribed event that was called and do some logic branching. So a single function can be used for many subscribed events.
Download a simple demo to see this pattern applied.