为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 相关文章推荐
JavaScript 关键字屏蔽实现函数
Aug 02 Javascript
js时间戳格式化成日期格式的多种方法
Nov 11 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
Dec 30 Javascript
setinterval()与clearInterval()JS函数的调用方法
Jan 21 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 Javascript
学习JavaScript设计模式之代理模式
Jan 12 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
如何为vuex实现带参数的 getter和state.commit
Jan 04 Javascript
jQuery操作动画完整实例分析
Jan 10 jQuery
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
PR值查询 | PageRank 查询
2006/12/20 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
基于jQuery的表格操作插件
2010/04/22 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
JS实现手风琴特效
2020/11/08 Javascript
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python多分支if语句的使用
2020/09/03 Python
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
幼儿园实习生辞职信
2014/01/20 职场文书
小学清明节活动总结
2014/07/04 职场文书
民事授权委托书范文
2014/08/02 职场文书
三方合作意向书范本
2015/05/09 职场文书
会议室使用管理制度
2015/08/06 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Go语言入门exec的基本使用
2022/05/20 Golang
Django框架中表单的用法
2022/06/10 Python