为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 相关文章推荐
自己的js工具_Form 封装
Aug 21 Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
js getElementsByTagName的简写方式
Jun 27 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
Document:getElementsByName()使用方法及示例
Oct 28 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
Javascript基础教程之argument 详解
Jan 18 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
Feb 22 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
日期 时间js控件
2009/05/07 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
vue实现微信分享功能
2018/11/28 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
python二分法实现实例
2013/11/21 Python
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
python如何查看安装了的模块
2020/06/23 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
无线电知识基础入门篇
2022/02/18 无线电
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis