首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Ext.ux.TabCloseMenu插件的容易扩展

2012-11-22 
Ext.ux.TabCloseMenu插件的简单扩展从网上下了Ext.ux.TabCloseMenu插件试用了一下,发现少了关闭全部标签

Ext.ux.TabCloseMenu插件的简单扩展
从网上下了Ext.ux.TabCloseMenu插件试用了一下,发现少了"关闭全部标签"的功能,笔者在Ext.ux.TabCloseMenu插件基础上进行了简单的修改,添加了这个功能,现发出来共享一下.

/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/

// Very simple plugin for adding a close context menu to tabs

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);
                        }
                    });
                }
            },{
                id: tabs.id + '-close-all',
                text: '关闭全部标签',
                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);
        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());
    }
};



1 楼 bevis.cn 2009-03-03   我想请问楼主呀,我之前用的就是ext帮助文档里的那个Ext.ux.TabCloseMenu,可是我遇到一点问题,我想点了左边的菜单后,在事边的div里多加一个tab然后显示一个新的jsp,我想在这个新的jsp刚开始的时候用js来初始化,我用window.onload和Ext.onReady都没有用,你能帮我吗,谢谢 2 楼 kimmking 2009-03-03   ls的,加我qq 3694826
看能帮你看看不

热点排行