ensure callbacks fire out of dom

One note is that events will not bubble when not attached to the DOM.
jQuery has its own implementation for ensuring bubbling.