是否可以将自定义事件附加到文档的正文?我想实现一个简单的消息总线。我用jQuery做过很多次,但不知道如何在ExtJS中做到这一点。
谢谢。
答案 0 :(得分:3)
您不需要将事件附加到正文或任何DOM元素,我宁愿将它们附加到专用对象。
喜欢:
MyApp.MessageBus = Ext.extend(Ext.util.Observable, {
// I don't think it's necessary to declare all events
events : {
sayHello : true
}
});
MsgBus = new MyApp.MessageBus();
并且,代码中的某处:
MsgBus.on('sayHello', function(who) { alert("Hello, " + who); });
而且,在另一个地方:
MsgBus.fireEvent('sayHello', 'innerJL');
答案 1 :(得分:1)
答案 2 :(得分:1)
将其置于文档本身在触发自定义事件方面存在问题。可以这样做 - 您只需要创建一个扩展Ext.util.Observable
的类作为Ext.getDoc
结果的表示。
但是你可以通过添加你已经拥有的Observable enableBubble : ['foo', 'bar']
来冒泡事件。这意味着你对任何一个Observable孩子都会fireEvent('foo')
,并且它会冒泡到听众所在的顶端。