我已阅读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}参数并且无法创建两个字符串。
答案 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事件。