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.']);