我有一个窗口,有2个子项panel1,panel2。我在停靠的物品中应用了按钮。按钮是窗口... panel1的一部分,而panel2没有按钮。
我必须为Panel1,Panel2做不同的操作。如果Panel1被激活,并且当使用时单击apply,它将调用一些处理程序。但是,当panel2被激活时,它会调用panel1的处理程序。那么,我该怎么办?
这是我对调用处理程序的引用
'myxtype button[action=apply]':{
click: someFunction
}
有没有办法为panel1和panel2做同样的应用按钮操作?或其他什么?
谢谢:)
答案 0 :(得分:4)
你需要在事件处理程序中进行切换:
'myxtype button[action=apply]': {
click: this.someFunction
},
someFunction: function (button) {
var tab = button.up('tabpanel').getActiveTab();
if (tab.title === 'tabtitle1') { // insert title of tab1 here
handlerForPanel1(); // insert function for tab1 here
} else {
handlerForPanel2(); // insert function for tab2 here
}
}
在extjs中,组件每个事件类型只能有一个侦听器函数 您无法根据此组件的环境分配不同的处理程序 所以唯一的解决方案是在事件处理程序中调度事件并将其委托给2个不同的函数