是否可以将自定义事件附加到文档的正文?我想实现一个简单的消息总线。我用 jQuery 做了很多次,但不知道如何在 ExtJS 中做。
谢谢你。
您不需要将事件附加到正文或任何 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']
。这意味着您fireEvent('foo')
对任何子 Observable 执行此操作,它会冒泡到您的侦听器所在的顶部。