我使用的是dojo 1.7版本,我想绑定(bind)用户定义的事件,在jQuery中我可以这样做:
$(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 类的基类或 mixin。文档中的示例:
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/
关于jquery - dojo可以绑定(bind)用户自定义事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10907935/