3

我已阅读SO 问题:Controller for Buttons Sencha Touch 2 [已解决]以实现点击按钮。有用!

不幸的是,我需要点击容器,而不是按钮。一旦我将xtype:'container', 更改为xtype:'button',它点击正常,我看到了console.log消息,所以一切正常。一旦我将它改回xtype:'container',它就会停止工作,没有任何console.log消息。

所以,我的问题是:如何让点击事件为我工作xtype:'container'?为什么它只适用于按钮?我错过了什么吗?

PS据我所知,容器没有点击事件。那有什么解决办法呢?将按钮制作为具有多个文本字符串和背景的解决方案吗?

好的,根据您的回答,目前还不清楚如何使按钮看起来像容器。容器是一个上面有两个字符串的图像。这是我的容器:

{
    xtype:'container',
    cls:'home-img',
    id: 'home-img',
    layout : {
        type : 'vbox',
         align: 'middle'
    },
    items:[
          { xtype:'container',
            html:'Your current rate is:'  
          },
          { xtype:'container',
            tpl:'{rate}'
          }
          ],
},

一旦我将xtype:'container',替换为xtype:'button',我很难显示 {rate} 参数并且无法制作两个字符串。

4

2 回答 2

24

我不是 sencha touch 的专业人士,但在这种情况下,我认为您需要在元素上安装一个监听器。这对我有用:

Ext.define('RSSFramework.view.ListContainer', {
extend: 'Ext.Container',

config: {
    layout: {
        type: 'fit'
    },
    listeners:[
                 {
                    element: 'element',
                    event: 'tap',
                    fn: function() {
                        console.log('TAP!');
                    }
                }
            ]
}

});
于 2013-06-11T10:16:27.467 回答
3

在 Sencha 中,没有tap可用于容器的事件。容器基本上就像可以容纳不同内部组件/元素的东西一样工作。但是,如果您希望将点击事件放置在容器上,您确实可以解决问题。正如您所提到的,您可以继续创建一个按钮、设置背景并设置一些字符串(但这不是按钮应该用于的用途)。或者您可以使用所需的字符串和背景设置 HTML,使其成为 div 并在其上设置 Onclick 事件。

于 2013-06-11T10:22:03.757 回答