为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 相关文章推荐
表单填写时用回车代替TAB的实现方法
Oct 09 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
javascript中input中readonly和disabled区别介绍
Oct 23 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
jquery Tab效果和动态加载的简单实例
Dec 11 Javascript
iframe如何动态创建及释放其所占内存
Sep 03 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
js为什么不能正确处理小数运算?
Dec 29 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 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数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php远程下载类分享
2016/04/13 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
php7 新增功能实例总结
2020/05/25 PHP
图片按比例缩放函数
2006/06/26 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
2015/11/17 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python中lambda与def用法对比实例分析
2015/04/30 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
python通过文件头判断文件类型
2015/10/30 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
在pycharm中显示python画的图方法
2019/08/31 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python的pygame安装教程详解
2020/02/10 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
元旦联欢会主持词
2014/03/26 职场文书
项目建议书范文
2014/05/12 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
母亲节感言
2015/08/03 职场文书
小学教师教学反思
2016/02/24 职场文书