Ext.ux.TabCloseMenu插件的使用

tab在ext里很常用,在点开N个tab后,是否能通过右键菜单,关闭全部tab或关闭除此以外的全部tab,当然可以,使用Ext.ux.TabCloseMenu插件就可以轻松实现。


Ext.onReady(function(){
       //tab插件
   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: '关闭标签',
               handler : function() {
                  tabs.remove(ctxItem);
               }
            },{
               id: tabs.id + '-close-others',
               text: '关闭其他标签',
               handler : function() {
                  tabs.items.each(function(item){
                     if(item.closable && item != ctxItem){
                        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());
      }
   };

   //layout
   var viewport = new Ext.Viewport({
      layout:'border',
      items:[
         new Ext.BoxComponent({
            region:'north',
            el: 'north',
            height:45
         }),new Ext.BoxComponent({
            region:'south',
            el: 'south',
            height:25
         }),{
            region:'west',
            id:'west-panel',
            split:true,
            width: 200,
            minSize: 175,
            maxSize: 400,
            margins:'0 0 0 0',
            layout:'accordion',
            title:"<?php echo $ui['ui_sys_menu_caption'];?>",
            collapsible :true,
            layoutConfig:{
               animate:true
            },
            items: [
               <?php echo $str;?>
            ]
         },
           tab = new Ext.TabPanel({
            region:'center',
            deferredRender:false,
            activeTab:0,
            resizeTabs:true, // turn on tab resizing
            minTabWidth: 115,
            tabWidth:135,
            enableTabScroll:true,
            items:[{
               iconCls:'desk',
               title:"title"
            }],
            plugins: new Ext.ux.TabCloseMenu()
         })
       ]
   });
});

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值