You could try Bacon.js, a successor to Rx.js created after its author complained about its obscure API. Bacon.js is very clean and can integrate with jQuery, Backbone.js, AngularJS, and even Node.js. Basically you can wrap any kind of events into a Bacon's event stream and start do wonderful things with them.
Bonus : you could even try yolk, described as "A thin Clojurescript wrapper around bacon.js".
-- edit : quick typo fixes