 <p>While this will work, it's probably best (from a readability and performance standpoint) to use a dedicated event library. If you don't want to do that, this is a neater way to do it.</p> <p>jQuery allows creation of <a href="https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment" rel="nofollow">documentFragments</a>, which just live in memory as an object. It isn't added to your page, and events can only be triggered on it by using the returned value (here stored in <code>window.events</code>).</p> <pre><code>window.events = $('&lt;div&gt;'); events.on('changeSettings',function(e,param1){ // do something }); events.trigger('changeSettings', ['value']); </code></pre> <h2><a href="http://jsfiddle.net/ueyZ3/" rel="nofollow">fiddle</a></h2> <hr> <p>Here's an example using <a href="http://radio.uxder.com/index.html" rel="nofollow">radio.js</a>, which does events and nothing else.</p> <pre><code>radio('changeSettings').subscribe(function(data1, data2) { //do something with data1 and data2 }); radio('changeSettings').broadcast(data1, data2); </code></pre> <p>You could also do something like this, which allows refactoring and minification.</p> <pre><code>var events = {changeSettings: radio('changeSettings')}; events.changeSettings.subscribe(function(data1, data2) { //do something with data1 and data2 }); events.changeSettings.broadcast(data1, data2); </code></pre>