为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 相关文章推荐
chrome原生方法之数组
Nov 30 Javascript
jQuery实现长文字部分显示代码
May 13 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
js图片无缝滚动插件使用详解
May 26 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
vue 动态添加class,三个以上的条件做判断方式
Nov 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
php比较相似字符串的方法
2015/06/05 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
javascript下string.format函数补充
2010/08/24 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
ionic3 懒加载
2017/08/16 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python try 异常处理(史上最全)
2019/03/07 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
小学班干部竞选演讲稿
2014/04/24 职场文书
考察现实表现材料
2014/05/19 职场文书
五水共治一句话承诺
2014/05/30 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
2014年资料员工作总结
2014/11/18 职场文书
商务考察邀请函模板
2015/02/02 职场文书
教师个人培训总结
2015/02/11 职场文书
自荐信怎么写
2015/03/04 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
政审证明范文
2015/06/19 职场文书
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers