Simple Pub/Sub

An example of a dead-simple pub/sub system using jQuery

by jamesdh

HTML

<html>
    <body>
        <input id="clicker" type="button" value="Click Me"/>             
    </body>
</html>

JavaScript

// Culled from http://pastebin.com/Dst4jLfy
// Works in modern browsers + IE9, but Modernizr has a polyfill baked in for function.bind.
// Hat tip Paul Irish

var o = $( {} );
$.subscribe = o.on.bind(o);
$.unsubscribe = o.off.bind(o);
$.publish = o.trigger.bind(o);

// Usage
$("#clicker").on( 'click', function() {
   // ...yadada
   $.publish( 'clicketyClack' ); // Think Rocky Balboa yelling out the window: "Hey yo!"
});

// And some dude listening patiently for Rocky's voice.
$.subscribe( 'clicketyClack', function() {
    alert("You can't win, Rock");
});