Sencha Touch 2:点击容器不起作用(点击按钮工作正常)

时间:2013-06-11 09:30:43

标签: events sencha-touch sencha-touch-2 containers tap

我已阅读SO question: Controller for Buttons Sencha Touch 2 [Solved]以实现点击按钮。它有效!

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

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

P.S。据我所知,没有容器的点击事件。那么解决方案是什么?将一个按钮设置为文本和背景的几个字符串是一种解决方案吗?

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

{
    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}参数并且无法创建两个字符串。

2 个答案:

答案 0 :(得分:24)

我不是专业人士,但在这种情况下,我认为你需要一个听众。 这对我有用:

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

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

});

答案 1 :(得分:3)

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