为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 14 Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 Javascript
jquery根据属性和index来查找属性值并操作
Jul 25 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
Sep 25 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
Mar 01 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 Javascript
vue-cli安装使用流程步骤详解
Nov 08 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
layui实现给某一列加点击事件
Oct 26 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
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
自动分页的不完整解决方案
2007/01/12 PHP
实用函数10
2007/11/08 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
php define的第二个参数使用方法
2013/11/04 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
php 常用的系统函数
2017/02/07 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
Python实现求两个csv文件交集的方法
2017/09/06 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python简单贪吃蛇开发
2019/01/28 Python
python3中eval函数用法使用简介
2019/08/02 Python
python如何实现单链表的反转
2020/02/10 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
技术总监个人的自我评价范文
2013/12/18 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
总经理检讨书范文
2015/02/16 职场文书
2015年工商所工作总结
2015/05/21 职场文书
庆七一主持词
2015/06/29 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript