选项卡单击或激活上的侦听器无法正常工作/extjs4

发布于 2024-11-28 01:46:27 字数 895 浏览 1 评论 0原文

我正在使用 extjs4 和 c# 开发一个应用程序,它基于 浏览器布局示例。 我的左侧有一个菜单,您可以在其中单击该菜单的每个项目。右侧有我所有的选项卡。

我在选项卡上使用的事件侦听器在我单击选项卡时起作用,但在我第一次从左侧菜单中单击它之后不起作用。

更清楚地说,当我第一次加载应用程序时,我必须从左侧菜单中选择一个项目,然后它会显示我的选项卡,其中 tab1 被激活。一切正常,但当我选择另一个项目然后返回到我的选项卡时它不起作用。

这是我的听众:

  listeners: { activate: function () {                                  
                               alert('tab1');                                  
                          }
             },

这是单击菜单时调用的代码:

menuPanel.getSelectionModel().on('select', function (selModel, record) {
    if (record.get('leaf')) {
        Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel');
        Ext.getCmp('cardTabs').setActiveTab(0);
}}

提前致谢!

I am developing an application with extjs4 and c#, it is based on the browser-layout example.
I have a menu on the left side, where you can click each item of that menu. On the right side I have all of my tabs.

The event listener I'm using on the tabs works when I click on the tab, but doesn't work after the first time I click on it from the left menu.

To be clearer, when I first load my application, I have to select an item from left menu, it then shows my tab with tab1 activated. Everything works well, except it doesn't work when I select another item then go back to my tab.

This is my listener:

  listeners: { activate: function () {                                  
                               alert('tab1');                                  
                          }
             },

Here is the code called when clicking the menu:

menuPanel.getSelectionModel().on('select', function (selModel, record) {
    if (record.get('leaf')) {
        Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel');
        Ext.getCmp('cardTabs').setActiveTab(0);
}}

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

焚却相思 2024-12-05 01:46:27

检查以下网址:

http://jsfiddle.net/6NK7n/6/

var sample1 = {
    id : 'example1',
    border : false,
    title : 'sample1'
};
var sample2 = {
    id : 'example2',
    border : false,
    title : 'sample2'
};
Ext.create('Ext.tab.Panel',{
    title : 'example',
    width : 300,
    height : 300,
    draggable : false,
    plain : true,
    id : 'examplepanel',
    activeTab : 0,
    border : true,
    renderTo : document.body,
    items : [sample1,sample2],
    listeners : {
        beforetabchange : function(tab,newTab,currentTab){
            if(newTab.getId() == 'example1'){
                alert('sample1 tab is selected');
            }else if(newTab.getId() == 'example2'){
                alert('sample2 tab is selected');
            }
        }
    }
});

once check the below url:

http://jsfiddle.net/6NK7n/6/

var sample1 = {
    id : 'example1',
    border : false,
    title : 'sample1'
};
var sample2 = {
    id : 'example2',
    border : false,
    title : 'sample2'
};
Ext.create('Ext.tab.Panel',{
    title : 'example',
    width : 300,
    height : 300,
    draggable : false,
    plain : true,
    id : 'examplepanel',
    activeTab : 0,
    border : true,
    renderTo : document.body,
    items : [sample1,sample2],
    listeners : {
        beforetabchange : function(tab,newTab,currentTab){
            if(newTab.getId() == 'example1'){
                alert('sample1 tab is selected');
            }else if(newTab.getId() == 'example2'){
                alert('sample2 tab is selected');
            }
        }
    }
});
已下线请稍等 2024-12-05 01:46:27

最好使用 beforetabchange 而不是 activate 侦听器。尝试以下操作:

listeners : {
beforetabchange : function(tab, newTab, currentTab){
if(newTab != null){
if(newTab.getId()=='tab1'){
alert('tab1');
}
}
}
}

像上面一样,您可以为要执行的每个选项卡编写侦听器。

Better to use beforetabchange instead of activate listener.Try the following one:

listeners : {
beforetabchange : function(tab, newTab, currentTab){
if(newTab != null){
if(newTab.getId()=='tab1'){
alert('tab1');
}
}
}
}

Like above you can write tha listeners for each tab that you wish to execute.

℉服软 2024-12-05 01:46:27

解决了

我向我的选项卡面板添加了一个侦听器

 listeners: { tabchange: function () {
                    //refresh 
                    switch (this.getActiveTab().id) {
                        case 'myId1': myFunction();
                        .........
                        }
                },

Solved

I added a listener to my tabpanel

 listeners: { tabchange: function () {
                    //refresh 
                    switch (this.getActiveTab().id) {
                        case 'myId1': myFunction();
                        .........
                        }
                },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文