阿罗哈,SO。
我正忙着开发一个几乎所有ExtJS用于前端工作的项目。我正在使用4.0.0版,假设这是必须要知道的。我有以下代码:
panel = Ext.create("Ext.panel.Panel",{
//initializing stuffs
})
其中一些
tabs = Ext.create("Ext.tab.Panel", {
//initialize config
items: [
//the panels
]
})
现在我的大问题是,我需要能够将事件绑定到实际的标签。我知道能够将事件绑定到选项卡面板和选项卡栏,但我需要实际将click事件绑定到面板中的一个选项卡。我尝试过这样的方法:
panel = Ext.create("Ext.panel.Panel", {
//initializing stuffs
listeners: {
click: {
fn: function() {
console.log("in click listener for panel")
}
}
}
})
然而,根据我的判断,问题是绑定到实际面板本身,而不是标签栏中的选项卡。有趣的是,就功能而言,它实际上甚至没有绑定到实际面板,因为我从未看到控制台日志信息。
在任何情况下,你们中的任何人都会知道如何将事件直接绑定到选项卡吗?或者甚至如何直接访问标签?我一直在筛选ExtJS API文档,但我仍然找不到任何东西,所以,如果有人在这里可以提供帮助,那就太棒了! :d
为了说清楚,我并没有试图勾选标签。我正试图勾选点击标签的实际点击事件,因为我将检查是否点击鼠标中键,这样我就可以关闭标签。
答案 0 :(得分:2)
我将它放在ExtJS 3中选项卡面板内的选项卡上。类似的东西应该在4中工作。
listeners: {
activate: function() {
var me = this;
Ext.fly(this.ownerCt.getTabEl(this)).on({
click: function() {
me.loadProducts();
}
});
},
single: true
},
loadProducts: function() {
this.load({
url: 'products.jsp',
params: {
caseID: window.caseID
},
scripts: true
});
答案 1 :(得分:1)
您可以向TabPanel本身添加听取beforetabchange
和/或tabchange