2012-06-06 43 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帮助。

相关问题