为EasyUI的Tab标签添加右键菜单的方法

 更新时间:2012年07月14日 12:39:12   作者:  
近期研究了下MenuButton,有了新的感悟,原先在那个DEMO中右键支持做法,现在看来真是小儿科啊
前期的准备工作:
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应用实例

相关文章

  • jQuery EasyUI中DataGird动态生成列的方法

    jQuery EasyUI中DataGird动态生成列的方法

    EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍EasyUI中DataGird动态生成列的方法
    2016-04-04
  • jQuery中parent()方法用法实例

    jQuery中parent()方法用法实例

    这篇文章主要介绍了jQuery中parent()方法用法,实例分析了parent()方法的功能、定义及取得紧邻父元素的使用技巧,需要的朋友可以参考下
    2015-01-01
  • 解决同一页面中两个iframe互相调用jquery,js函数的方法

    解决同一页面中两个iframe互相调用jquery,js函数的方法

    本文主要介绍了解决同一页面中两个iframe互相调用jquery,js函数的方法,具有很好的参考价值,需要的朋友可以看下
    2016-12-12
  • jQuery内容筛选选择器实例代码

    jQuery内容筛选选择器实例代码

    这篇文章主要为大家详细介绍了jQuery内容筛选选择器实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JQuery遍历元素的后代和同胞实现方法

    JQuery遍历元素的后代和同胞实现方法

    下面小编就为大家带来一篇JQuery遍历元素的后代和同胞实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • jquery tmpl模板(实例讲解)

    jquery tmpl模板(实例讲解)

    下面小编就为大家带来一篇jquery tmpl模板(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 模仿jQuery each函数的链式调用

    模仿jQuery each函数的链式调用

    模仿jQuery each函数的链式调用实现代码。
    2009-07-07
  • js实现图片放大缩小功能后进行复杂排序的方法

    js实现图片放大缩小功能后进行复杂排序的方法

    这是一个基于jquery的图片效果,它的作用是:当图片点击变大(变小)时,其它图片按照一定的规则进行排序运动
    2012-11-11
  • 基于jQuery图片平滑连续滚动插件

    基于jQuery图片平滑连续滚动插件

    彦磊基于jQuery图片平滑滚动插件(2009.04) 在IE6/IE7/Mozilla 5.0(Firefox 3.0.5)中测试通过
    2009-04-04
  • jQuery的.live()和.die() 使用介绍

    jQuery的.live()和.die() 使用介绍

    很多开发者都知道jQuery的.live()方法,他们大部分知道这个函数做什么,但是并不知道是怎么实现的,所以用的并不那么舒适。而且他们却从未听过还有解除绑定的.live()事件的.die()方法。即使你熟悉这些,但是你意识到.die()了吗?
    2011-09-09

最新评论