ext 右键控制tab关闭

原文:http://blog.sina.com.cn/s/blog_6a292d8e0101jz71.html

一、首先新建右键菜单的插件,代码如下:

Ext.ux.TabCloseMenu = function(){
     var tabs, menu, ctxItem;
     this.init = function(tp){
         tabs = tp;
         tabs.on('contextmenu', onContextMenu);
     }

     function onContextMenu(ts, item, e){
         if(!menu){ // create context menu on first right click
             menu = new Ext.menu.Menu([{
                 id: tabs.id + '-close',
                 text: '关闭当前标签',
                 iconCls : 'btnno',
                 handler : function(){
                     tabs.remove(ctxItem);
                 }
             },{
                 id: tabs.id + '-close-others',
                 text: '关闭其他标签',
                 iconCls : 'btnno',
                 handler : function(){
                     tabs.items.each(function(item){
                         if(item.closable && item != ctxItem){
                             tabs.remove(item);
                         }
                     });
                 }
             },{
                 id: tabs.id + '-close-all',
                 text: '关闭所有标签',
                 iconCls : 'btnno',
                 handler : function(){
                     tabs.items.each(function(item){
                         if(item.closable){
                            tabs.remove(item);
                        }
                     });
                 }
             }]);
         }
         ctxItem = item;
         var items = menu.items;
         items.get(tabs.id + '-close').setDisabled(!item.closable);


         var disableOthers = true;
         tabs.items.each(function(){
             if(this != item && this.closable){
                 disableOthers = false;
                 return false;
             }
         });
         items.get(tabs.id + '-close-others').setDisabled(disableOthers);
         menu.showAt(e.getPoint());
        
         var disableAll = true;
          tabs.items.each(function(){
              if(this.closable){
                  disableAll = false;
                  return false;
              }
         });
         items.get(tabs.id + '-close-all').setDisabled(disableAll);
          menu.showAt(e.getPoint());
     }
};


二、然后在需要增加右键菜单的tabpane控件上加上此插件。

plugins: new Ext.ux.TabCloseMenu()

例如:

var mainPanel =new Ext.TabPanel({
    region: 'center',
    deferredRender: false,
    activeTab: 0,
    enableTabScroll : true,
    margins: '0 0 0 0',//设置边距
    bodyStyle:'background-color:#FF4444',
    items: [{
        autoLoad:{url:mainIndexUrl,scripts:false},
        title: '首页',
        autoScroll: false
    }],
    plugins:new Ext.ux.TabCloseMenu()
});


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值