我有一个视口,附有以下工具栏:
{
xtype: 'toolbar',
enableOverflow:true,
items:[
{
xtype: 'button',
text: 'Open',
id: 'MapOpenButton',
iconCls: 'icon-folderopen',
tooltip: 'Open map'
},
{
xtype: 'button',
text: 'Save',
id: 'MapSaveButton',
iconCls: 'saveCls',
tooltip: 'Save map'
},
{
xtype: 'button',
text: 'Close',
id: 'MapCloseButton',
iconCls: 'closeCls',
tooltip: 'Close map'
}
]
}
我让这个控制器听按钮:
Ext.define('controller.Main', {
extend: 'Ext.app.Controller',
views: [
'Main'
],
init: function (application) {
this.control({
"#MapOpenButton": {
click: this.OpenMap
},
"#MapSaveButton": {
click: this.SaveMap
},
"#MapCloseButton": {
click: this.CloseMap
}
});
}
});
这样可以完美地工作,直到调整窗口大小并强制工具栏创建溢出菜单。问题是菜单重新创建具有不同属性的元素(例如新的id)。当工具栏溢出时,控制器停止监听按钮,直到窗口大小恢复并且工具栏再次恢复正常。
有解决方法吗?除了将处理程序直接添加到按钮之外。我尝试使用itemID而不是ID,但它也不起作用。
谢谢!
答案 0 :(得分:0)
使用itemId而不是id(这不是一个好习惯)并且这样做:
this.control({ “按钮[的itemId = someId”:{ 点击:this.onClickOfMyButton } });
祝你好运。