sencha-touch-2 - 向元素添加点击事件?

标签 sencha-touch-2

如何在 ST2 应用程序中将点击事件分配给任意范围 (eg. <span id="foo">foo</span>)?

我有一个简单的例子来说明我想做的事情。在示例中,我写了字母 A,B,C我想告诉用户他们点击了哪个字母。

这是一张图片:

enter image description here

代码片段

Ext.application({

    launch: function() {
        var view = Ext.create('Ext.Container', {

            layout: {
                type: 'vbox'
            },
            items: [{
                html: '<span id="let_a">A</span>  <span id="let_b">B</span> <span style="float:right" id="let_c">C</span>',
                style: 'background-color: #c9c9c9;font-size: 48px;',
                flex: 1
            }]
        });
        Ext.Viewport.add(view);
    }
});

最佳答案

您可以使用委托(delegate)将监听器添加到特定元素。它实际上使用起来相当简单。

Ext.Viewport.add({
    html: 'test <span class="one">one</span> hmmm <span class="two">two</span>',
    listeners: [
        {
            element: 'element',
            delegate: 'span.one',
            event: 'tap',
            fn: function() {
                console.log('One!');
            }
        },
        {
            element: 'element',
            delegate: 'span.two',
            event: 'tap',
            fn: function() {
                console.log('Two!');
            }
        }
    ]
});

主要部件是elementdelegate .
  • element将具有 element 的值几乎在所有情况下,除非您使用自定义模板处理自定义组件。
  • delegate是一个简单的 CSS 选择器。所以它可以是 span 中的任何内容至span .test.second

  • 理想情况下,如 蒂姆 说,你应该尽可能地利用组件。他们会给你更多的灵 active 。但我知道在某些情况下你肯定需要这样做。不会对性能产生影响;事实上,它会比使用组件更快。但是,您应该 从不按照他建议的方式实现听众。它不会高效并且非常脏(正如他所提到的)。

    关于sencha-touch-2 - 向元素添加点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298683/

    相关文章:

    javascript - 如何将 sencha 按钮添加到 sencha 列表

    php - 为什么这个 API 在通过 php 代理调用时不再起作用?我该如何解决?

    javascript - 即使我添加了布局和弹性属性,列表在 Ext.Container 中也不可见

    javascript - 列表更新后无法让 sencha touch 2 对我的数据进行排序

    css - 风格化 Sencha Touch 应用程序的最佳方式是什么?

    javascript - Sencha Touch 构建 - 排除文件

    extjs - WARN 当前工作目录不是可识别的 Sencha SDK 或应用程序文件夹

    sencha-touch - Sencha Touch 2 中的动画尺寸

    sencha-touch-2 - 如何为 Sencha Touch 应用程序创建生产构建/缩小脚本?

    sencha-touch-2 - 在文本字段 Sencha Touch 2 上设置自定义属性