ExtJS向body添加自定义事件

时间:2011-01-15 11:40:55

标签: events extjs custom-event

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

谢谢。

3 个答案:

答案 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)

我同意Drasill,Ext社区中有很多例子用于创建基于Observable的简单总线实现。首先是herehere

答案 2 :(得分:1)

将其置于文档本身在触发自定义事件方面存在问题。可以这样做 - 您只需要创建一个扩展Ext.util.Observable的类作为Ext.getDoc结果的表示。

但是你可以通过添加你已经拥有的Observable enableBubble : ['foo', 'bar']来冒泡事件。这意味着你对任何一个Observable孩子都会fireEvent('foo'),并且它会冒泡到听众所在的顶端。