Finding a Observer Pattern that works w/Zepto

http://api.jquery.com/jQuery.Callbacks/

by deanpeters

HTML

<script src="http://zeptojs.com/zepto.js"></script>
<script src="http://beanerspace.com/scripts/deferred.min.js"></script>
<script src="http://beanerspace.com/scripts/mi.gap.observer.js"></script>
<h2>You can see results in your FireBug/Inspector panel</h2>
<ul id="events">
</ul>

JavaScript

if (window.Zepto) {
    // https://github.com/madrobby/zepto/commit/1d5daef9f8abd9b92340c135bfbb11a7ce1a83a6
    Zepto.browser = {
        webkit: true
    };
    window.jQuery = Zepto; // get Bootstrap to work w/Zepto
    Deferred.installInto(Zepto);
    console.log("Zepto Deferred Plugin loaded");
};

    
var handle = $.subscribe('notification', function (msg) {
    $("ul#events").append('<li>' + msg + '</li>');
    console.log("subscription notification for handle:", msg, handle);
  
});
 
var handle2 = $.subscribe('notification', function (msg) {
    $("ul#events").append('<li> from Subscription 2:' + msg + '</li>');
    console.log("Subscription #2 notification for handle:", msg, handle);
  
});


var handle3 = $.subscribe('notification', function (msg) {
    $("ul#events").append('<li>Subscriber 3' + msg + '</li>');
    console.log("Subscriber 3 - subscription notification for handle:", msg, handle);
  
});

$.publish('notification', ['Hello World']);
 
$.unsubscribe(handle);

$.publish('notification', ['Hello Again!']);

$.unsubscribe(handle3);

$.publish('notification', ['Goodbye for now. Only subscriber 2 should broadcast this message.']);