Mojo.Eventは、HTMLドキュメント内のノード/要素であるイベントの発信元に依存します。私が知ることから、DOMコンテキストの外にあるイベント用のライブラリにはビルドされていませんので、この時点で独自に実装する必要があります。あなたの状況は、あなたがちょうどあなたがに耳を傾け、のは、将来の一定の時間を呼び出される関数を格納しているオブジェクトのプロパティを作成して方法を取得することができるかもしれどのように複雑な依存:
ListeningObject = Class.create({
initialize:function(){
// instantiate instance of Subject
var subject = new Subject();
// set the onEvent property of subject to an instance of this.onEvent bound to
// a this instance of Listening object's context.
subject.onEvent = this.onEvent.bind(this);
subject.doSomethingAwesome();
},
onEvent:function(){
Mojo.Log.info("This get's called from the object we're listening to");
}
});
Subject = Class.create({
doSomethingAwesome:function(){
// does stuff, maybe an ajax call or whatever
// when it's done you can check if onEvent is a function and then
// you can call it, we'll use setTimeout to simulate work being done
setTimeout((function(){
if(Object.isFunction(this.onEvent)) this.onEvent();
}).bind(this), 200);
},
onEvent:null
});
// instantiate an instance of ListeningObject to see it in action
var listening_object = new ListeningObject;
このモデルの最大の制限は、特定のイベントをリッスンするオブジェクトを1つだけ持つことができますが、いくつかの状況では必要なことだけです。