(function() { $.fn.hammer = function(options) { return this.each(function() { var $el; $el = $(this); if (!$el.data('hammer')) { return $el.data('hammer', new Hammer($el[0], options)); } }); }; Backbone.View.prototype._setElement = (function(originalFunction) { return function() { originalFunction.apply(this, arguments); if (this.hammerjs === true) { this.$el.hammer(); } else { if (this.hammerjs) { this.$el.hammer(_.clone(this.hammerjs)); } } return this.hammer = this.$el.data('hammer'); }; })(Backbone.View.prototype._setElement); Hammer.Manager.prototype.emit = (function(originalFunction) { return function(type, data) { var $target, el, i, len, ref; originalFunction.apply(this, arguments); $target = $(data.target); if (this.element !== data.target) { if ($target.data('hammer') != null) { return; } ref = $target.parentsUntil($(this.element)); for (i = 0, len = ref.length; i < len; i++) { el = ref[i]; if ($(el).data('hammer') != null) { return; } } } return $target.trigger({ type: type, gesture: data }); }; })(Hammer.Manager.prototype.emit); }).call(this);