2012-06-06 94 views
3

謝謝,我用的dojo 1.7版本,我要綁定用戶定義的事件,在jquery我可以這樣做:可以dojo綁定用戶定義的事件嗎?

$(window).bind("pushMessage",function(){}); 

然後觸發這樣的事件:

$(window).trigger("pushMessage",{}); 

dojo能得到和上面一樣的結果嗎?如果是,如何?

回答

3

是的,它可以經由dojo/on

on(window, "pushMessage", function(event) {}); 

on.emit(window, "pushMessage", { 
    bubbles: true, 
    cancelable: true 
}); 

參見實例:http://jsfiddle.net/phusick/MQThM/

還有dojo/Evented其提供了可被用作基類或混入對JavaScript類的類發出自己的事件。從文檔的一個例子:

require([ 
    "dojo/_base/declare", 
    "dojo/Evented" 
], function(
    declare, 
    Evented 
) { 

    var MyComponent = declare([Evented], { 
     startup: function() { 
      this.emit("ready", {}); 
     }    
    }); 

    var component = new MyComponent(); 
    component.on("ready", function() { 
     console.log("Component is ready.");   
    }); 

    component.startup(); 

});​ 

同樣在的jsfiddle播放使用:http://jsfiddle.net/phusick/ZhG58/

+0

謝謝phusick,你的方法是正確的!我得到了我的預期結果!再次感謝! – Dean

1

如果你想發佈/訂閱的全球性事件,你可能會發現dojo/topic幫助。

相關問題