Javascript Sencha Touch-听众和活动代表团-他们会融合吗?

Javascript Sencha Touch-听众和活动代表团-他们会融合吗?,javascript,extjs,sencha-touch,Javascript,Extjs,Sencha Touch,我最近开始在一个项目上使用Sencha Touch,尽管我已经使用ExtJS有一段时间了,但两者在许多方面是不同的。为了使学习曲线复杂化,我将ST作为一个底层框架应用,而不是作为一个整体UI/framework/什么都做。因此,我遇到了一种情况,我希望使用数组方法为元素设置侦听器,同时还希望保持对事件的使用,例如“painted”等 下面是一个例子——我99%肯定有更好的方法来做我想做的事情: Ext.create('Ext.Container', { html: '<ul>

我最近开始在一个项目上使用Sencha Touch,尽管我已经使用ExtJS有一段时间了,但两者在许多方面是不同的。为了使学习曲线复杂化,我将ST作为一个底层框架应用,而不是作为一个整体UI/framework/什么都做。因此,我遇到了一种情况,我希望使用数组方法为元素设置侦听器,同时还希望保持对事件的使用,例如“painted”等

下面是一个例子——我99%肯定有更好的方法来做我想做的事情:

Ext.create('Ext.Container', {
    html: '<ul><li id="blah">Blah</li><li id="hooey">Hooey</li></ul>',
    listeners: [{
        element: 'element',
        delegate: 'li#blah',
        event: 'tap',
        fn: function() { /* do something for blah */ }
    },{ 
        /* repeat for hooey, etc */
    }]
});
我想知道在同一个组件上执行这些操作的最佳实践,而不是,比方说,必须执行activate listener,然后在activate/show/paint/whathaveyou上将元素tap事件处理程序应用于组件


注意:使用extjs标记,因为我假设它也适用于那里-如果不适用,请随时编辑或让我知道,我会提取标记。

一般来说,您不应该弄乱来自另一个组件的组件元素,想象它们类似于私有属性(组件的呈现html可以更改,所以不要依赖它),您的第一个示例中的代码看起来不太好,我甚至不知道这可以工作。您应该实现导出到外部世界的组件事件

在某些特定情况下,您可以通过getEl()、getScrollerEl()等方法导出元素。但大多数情况下,这表明您做错了什么


另一方面,绑定元素事件监听器在文档中有描述。

一般来说,您不应该弄乱来自另一个组件的组件元素,想象它们像私有属性(组件的呈现html可以更改,因此不依赖它),第一个示例中的代码看起来不太好,我甚至不知道这能起作用。您应该实现导出到外部世界的组件事件

在某些特定情况下,您可以通过getEl()、getScrollerEl()等方法导出元素。但大多数情况下,这表明您做错了什么


另外,文档中描述了绑定元素事件侦听器。

很难理解您到底想问什么。您是否对设置DOM事件侦听器和组件事件侦听器感到困惑?如果您提供具体的示例,这会有所帮助……我很好奇,如果可能的话,您如何在同一配置中设置元素和组件侦听器。此外,我还没有在API文档中看到任何关于元素事件监听器的好文档(尽管我可能会错过它)。我知道的元素侦听器的唯一方法是我在第一个示例中介绍的方法。请参阅我的答案。这就是你要问的吗?很难理解你到底想问什么。您是否对设置DOM事件侦听器和组件事件侦听器感到困惑?如果您提供具体的示例,这会有所帮助……我很好奇,如果可能的话,您如何在同一配置中设置元素和组件侦听器。此外,我还没有在API文档中看到任何关于元素事件监听器的好文档(尽管我可能会错过它)。我知道的元素侦听器的唯一方法是我在第一个示例中介绍的方法。请参阅我的答案。这就是你要问的吗?谢谢-我想我现在(或过去)做事情的方式肯定不是最好的方式,但是日程安排很紧,并且有一个准备好的布局。。。我做了我能做的。我希望能够使同时添加元素和组件侦听器变得更容易一些,因为组件可能有一个包含需要事件的部分的contentEl(没有时间深入研究Touch组件的样式),但也需要一些组件事件,如Paint或show。谢谢思想谢谢-我认为我现在(或曾经)做事情的方式肯定不是最好的方式,但日程安排很紧,并且有一个事先准备好的布局。。。我做了我能做的。我希望能够使同时添加元素和组件侦听器变得更容易一些,因为组件可能有一个包含需要事件的部分的contentEl(没有时间深入研究Touch组件的样式),但也需要一些组件事件,如Paint或show。谢谢
Ext.create('Ext.Container', {
    listeners: {
        activate: function() {
            // do some stuff here
        }
    }
 });