为EasyUI的Tab标签添加右键菜单的方法


Posted in Javascript onJuly 14, 2012

前期的准备工作:
1、下载DEMO源码,并升级为最新版本(jquery 1.7.2,Easyui 1.2.6),直接替换就可以啦,升级easyui 是的要把css js theme 全部替换
2、在首页的HTML代码中:将

<div id="mm" class="easyui-menu" style="width:150px;"> 
<div id="mm-tabupdate">刷新</div> 
<div class="menu-sep"></div> 
<div id="mm-tabclose">关闭</div> 
<div id="mm-tabcloseall">全部关闭</div> 
<div id="mm-tabcloseother">除此之外全部关闭</div> 
<div class="menu-sep"></div> 
<div id="mm-tabcloseright">当前页右侧全部关闭</div> 
<div id="mm-tabcloseleft">当前页左侧全部关闭</div> 
<div class="menu-sep"></div> 
<div id="mm-exit">退出</div> 
</div>

改为:
<div id="mm" class="easyui-menu" style="width:150px;"> 
<div id="refresh">刷新</div> 
<div class="menu-sep"></div> 
<div id="close">关闭</div> 
<div id="closeall">全部关闭</div> 
<div id="closeother">除此之外全部关闭</div> 
<div class="menu-sep"></div> 
<div id="closeright">当前页右侧全部关闭</div> 
<div id="closeleft">当前页左侧全部关闭</div> 
<div class="menu-sep"></div> 
<div id="exit">退出</div> 
</div>

outlook2.js 中添加新方法如下:
function closeTab(action) 
{ 
var alltabs = $('#tabs').tabs('tabs'); 
var currentTab =$('#tabs').tabs('getSelected'); 
var allTabtitle = []; 
$.each(alltabs,function(i,n){ 
allTabtitle.push($(n).panel('options').title); 
}) 
switch (action) { 
case "refresh": 
var iframe = $(currentTab.panel('options').content); 
var src = iframe.attr('src'); 
$('#tabs').tabs('update', { 
tab: currentTab, 
options: { 
content: createFrame(src) 
} 
}) 
break; 
case "close": 
var currtab_title = currentTab.panel('options').title; 
$('#tabs').tabs('close', currtab_title); 
break; 
case "closeall": 
$.each(allTabtitle, function (i, n) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
}); 
break; 
case "closeother": 
var currtab_title = currentTab.panel('options').title; 
$.each(allTabtitle, function (i, n) { 
if (n != currtab_title && n != onlyOpenTitle) 
{ 
$('#tabs').tabs('close', n); 
} 
}); 
break; 
case "closeright": 
var tabIndex = $('#tabs').tabs('getTabIndex', currentTab); 
if (tabIndex == alltabs.length - 1){ 
alert('亲,后边没有啦 ^@^!!'); 
return false; 
} 
$.each(allTabtitle, function (i, n) { 
if (i > tabIndex) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
} 
}); 
break; 
case "closeleft": 
var tabIndex = $('#tabs').tabs('getTabIndex', currentTab); 
if (tabIndex == 1) { 
alert('亲,前边那个上头有人,咱惹不起哦。 ^@^!!'); 
return false; 
} 
$.each(allTabtitle, function (i, n) { 
if (i < tabIndex) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
} 
}); 
break; 
case "exit": 
$('#closeMenu').menu('hide'); 
break; 
} 
}

将js中tabCloseEven 方法 改为
function tabCloseEven() { 
$('#mm').menu({ 
onClick: function (item) { 
closeTab(item.id); 
} 
}); 
return false; 
}

这样就OK啦,代码比原来优雅多啦!
调用刷新,关闭当前标签时,就调用 closeTab(‘action') //action 可以为 refresh(刷新),close(关闭)
iframe 中使用时,要这么屎 top.closeTab('action');
点此下载最新的Easyui应用实例
Javascript 相关文章推荐
实现连缀调用的map方法(prototype)
Aug 05 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
jQuery控制图片的hover效果(smartRollover.js)
Mar 18 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
Sep 03 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
Aug 25 Javascript
原生js实现瀑布流效果
Mar 09 Javascript
js+canvas实现五子棋小游戏
Aug 02 Javascript
jQuery Tools tab(幻灯片)
Jul 14 #Javascript
jQuery Tools tab使用介绍
Jul 14 #Javascript
jQuery Tools Dateinput使用介绍
Jul 14 #Javascript
jQuery Tools tooltip使用说明
Jul 14 #Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 #Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 #Javascript
JavaScript面向对象之Prototypes和继承
Jul 12 #Javascript
You might like
PHP关联数组的10个操作技巧
2013/01/21 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
Python中的装饰器用法详解
2015/01/14 Python
python黑魔法之编码转换
2016/01/25 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python多线程下信号处理程序示例
2019/05/31 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python ftplib模块使用代码实例
2019/12/31 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
澳大利亚商务邀请函
2014/01/17 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
法定代表人免职证明
2015/06/24 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python