ExtJs TabPanel右键功能插件Ext.ux.TabCloseMenu

源码:

Ext.ux.TabCloseMenu = function () {
	var tabs,
	menu,
	ctxItem;
	this.init = function (tp) {
		tabs = tp;
		tabs.on('contextmenu', onContextMenu);
	}
	function onContextMenu(ts, item, e) {
		ctxItem = item;
		if (!menu) { // create context menu on first right click
			menu = new Ext.menu.Menu([{
							id : tabs.id + '-close',
							text : '关闭当前',
							handler : function () {
								tabs.remove(ctxItem, false);
							}
						}, {
							id : tabs.id + '-close-others',
							text : '关闭其他',
							handler : function () {
								tabs.items.each(function (item) {
									if (item.closable && item != ctxItem) {
										tabs.remove(item, false);
									}
								});
							}
						}, {
							id : tabs.id + '-close-all',
							text : '关闭所有',
							handler : function () {
								tabs.items.each(function (item) {
									if (item.closable) {
										tabs.remove(item, false);
									}
								});
							}
						}, '-', {
							id : tabs.id + '-closable',
							text : '可关闭',
							checked : true,
							hideOnClick : ctxItem.closable,
							handler : function () {
								if (item.checked) {
									ctxItem.closable = false;
								} else {
									ctxItem.closable = true;
								}
							}
						}
					]);
		}
		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());
	}
};

Ext.preg('tabclosemenu',Ext.ux.TabCloseMenu);

使用方法:

在TabPanel上加上这句,plugins :new Ext.ux.TabCloseMenu()

注:一定要导入包含源码的js文件


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值