謝謝,我用的dojo
1.7版本,我要綁定用戶定義的事件,在jquery
我可以這樣做:可以dojo綁定用戶定義的事件嗎?
$(window).bind("pushMessage",function(){});
然後觸發這樣的事件:
$(window).trigger("pushMessage",{});
dojo
能得到和上面一樣的結果嗎?如果是,如何?
謝謝,我用的dojo
1.7版本,我要綁定用戶定義的事件,在jquery
我可以這樣做:可以dojo綁定用戶定義的事件嗎?
$(window).bind("pushMessage",function(){});
然後觸發這樣的事件:
$(window).trigger("pushMessage",{});
dojo
能得到和上面一樣的結果嗎?如果是,如何?
是的,它可以經由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/
如果你想發佈/訂閱的全球性事件,你可能會發現dojo/topic幫助。
謝謝phusick,你的方法是正確的!我得到了我的預期結果!再次感謝! – Dean