为EasyUI的Tab标签添加右键菜单的方法 |
前期的准备工作: 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应用实例 |