Skip to content

Instantly share code, notes, and snippets.

@wilsonpage
Last active December 16, 2015 15:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wilsonpage/5453266 to your computer and use it in GitHub Desktop.
Save wilsonpage/5453266 to your computer and use it in GitHub Desktop.
View.prototype.fire = function(name) {
var args = [].slice.call(arguments, 1);
var parent = this.parent;
var propagate;
var event;
if (typeof name === 'object') {
name = name.name;
event = name.event;
}
this.event = event || {
target: this,
stopPropagation: function(){this.propagate = false;}
};
// Trigger event
events.prototype.fire.call(this, args);
// Propagate by default
propagate = (event.propagate !== false);
// Trigger the same event on the parent view
if (propagate && parent) this.fire.apply(parent, [{name: name, event: event}].concat(args));
// Remove the event reference
delete this.event;
// Allow chaining
return this;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment