2012-04-14 15 views
1

私のアプリケーションでは、いくつかのウィジェットがあります。人が変更を加えると、他の人も変更する必要があります。私はそれらを切り離しておきたい。私はあまりにも多くのJavaScriptプログラミングを行っていないので、これを行う典型的な方法は本当にわかりません。Javascriptの登録イベントリスナー

jqueryにキューイングのメカニズムがあるので、「prop X changed value Y」とそのキューに登録されている誰に通知することができるイベントを通知できますか?それとも、これはjavascriptのイベントを処理する典型的な方法ではありませんか?

答えて

3

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); 

また、グローバル保持するemtpy jQueryオブジェクトを作成し、イベントバスとディスパッチイベントを提供することができ

window.myEventBus = $([]); 

//register listener 
myEventBus.bind("customEvent", function(e){ 
    //handle event 
}); 

//fire event 
myEventBus.trigger($.Event("customEvent", { numProp:5, boolProp:true }));