【发布时间】:2011-01-15 11:40:55
【问题描述】:
是否可以将自定义事件附加到文档的正文?我想实现一个简单的消息总线。我用 jQuery 做了很多次,但不知道如何在 ExtJS 中做。
谢谢。
【问题讨论】:
标签: events extjs custom-event
是否可以将自定义事件附加到文档的正文?我想实现一个简单的消息总线。我用 jQuery 做了很多次,但不知道如何在 ExtJS 中做。
谢谢。
【问题讨论】:
标签: events extjs custom-event
您不需要将事件附加到正文或任何 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');
【讨论】:
将它放在文档本身在触发自定义事件方面是有问题的。可以做到——你只需要创建一个扩展Ext.util.Observable 的类作为Ext.getDoc 结果的表示。
但是你可以通过添加到你已经拥有的 Observables enableBubble : ['foo', 'bar'] 来冒泡事件。这意味着您对任何子 Observable 执行 fireEvent('foo'),它会冒泡到您的侦听器所在的顶部。
【讨论】: