所以我的sencha touch应用程序出了问题。我有一个容器定义:
{
xtype: 'container',
text: 'SOMETHING',
height: '15%',
width: '15%',
itemId: 'optionsMenu',
hidden: true,
style: 'background:red',
},
我在Listeners中定义了一个监听器:
{
fn: 'onOptionsButtonTap',
event: 'tap',
delegate: '#optionsButton'
}
最后我的onOptionsButtonTap()方法:
onOptionsButtonTap: function() {
var optionsPanel = this.down('#optionsMenu');
console.log(optionsPanel.isHidden());
if(optionsPanel.isHidden()) {
optionsPanel.showBy(this.down('#optionsButton'));
//optionsPanel.addAfterListener('tap', this.onOptionsButtonTap);
}
else
optionsPanel.hide();
},
我想要做的是当我点击按钮时,按钮会显示容器。但是当我下次点击按钮时,我收到一个TypeError,说optionsPanel没有方法isHidden()。是什么造成的?我也尝试使用面板(因此变量名称),但这给出了相同的错误。
答案 0 :(得分:0)
我添加了容器的名称。
{
xtype: 'container',
text: 'SOMETHING',
name: 'option_menu',
height: '15%',
width: '15%',
hidden: true,
style: 'background:red'
}
在您的控制器中,只需创建此optionMenu: 'container[name="option_menu"]
option_menu的引用,并在tap
按钮事件中从控制器调用此函数。
onOptionsButtonTap: function(button) {
var me = this, optionsPanel = me.getOptionMenu();
console.log(optionsPanel.isHidden());
if(optionsPanel.isHidden()) {
optionsPanel.showBy(button);
}
else{
optionsPanel.hide();
}
}