2

是否可以将自定义事件附加到文档的正文?我想实现一个简单的消息总线。我用 jQuery 做了很多次,但不知道如何在 ExtJS 中做。

谢谢你。

4

3 回答 3

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');
于 2011-01-15T14:30:13.657 回答
1

我同意 Drasill 的观点,Ext 社区中有很多示例用于创建基于 Observable 的简单总线实现。请参阅此处此处了解初学者。

于 2011-01-15T15:40:11.123 回答
1

将其放在文档本身在触发自定义事件方面是有问题的。可以做到——您只需要创建一个扩展Ext.util.Observable为您的结果表示的类Ext.getDoc

但是你可以通过添加到你已经拥有的 Observables 中来冒泡事件enableBubble : ['foo', 'bar']。这意味着您fireEvent('foo')对任何子 Observable 执行此操作,它会冒泡到您的侦听器所在的顶部。

于 2011-01-15T23:27:02.297 回答