jquery では簡単で、標準のイベントと同じメカニズムを利用できます。
//register listener for "widget"
$("div#firstWidget").bind("myCustomEvent", function(e){
alert(e.customFlag);
});
//somewhere else trigger event on widget
var e = $.Event("myCustomEvent");
e.customFlag = "customValue";
$("div#firstWidget").trigger(e);
イベントを保持およびディスパッチするための空のjqueryオブジェクトを作成するグローバルイベントバスを提供することもできます
window.myEventBus = $([]);
//register listener
myEventBus.bind("customEvent", function(e){
//handle event
});
//fire event
myEventBus.trigger($.Event("customEvent", { numProp:5, boolProp:true }));