為EasyUI的Tab標(biāo)簽添加右鍵菜單的方法
更新時(shí)間:2012年07月14日 12:39:12 作者:
近期研究了下MenuButton,有了新的感悟,原先在那個(gè)DEMO中右鍵支持做法,現(xiàn)在看來(lái)真是小兒科啊
前期的準(zhǔn)備工作:
1、下載DEMO源碼,并升級(jí)為最新版本(jquery 1.7.2,Easyui 1.2.6),直接替換就可以啦,升級(jí)easyui 是的要把css js theme 全部替換
2、在首頁(yè)的HTML代碼中:將
<div id="mm" class="easyui-menu" style="width:150px;">
<div id="mm-tabupdate">刷新</div>
<div class="menu-sep"></div>
<div id="mm-tabclose">關(guān)閉</div>
<div id="mm-tabcloseall">全部關(guān)閉</div>
<div id="mm-tabcloseother">除此之外全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="mm-tabcloseright">當(dāng)前頁(yè)右側(cè)全部關(guān)閉</div>
<div id="mm-tabcloseleft">當(dāng)前頁(yè)左側(cè)全部關(guān)閉</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">關(guān)閉</div>
<div id="closeall">全部關(guān)閉</div>
<div id="closeother">除此之外全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="closeright">當(dāng)前頁(yè)右側(cè)全部關(guān)閉</div>
<div id="closeleft">當(dāng)前頁(yè)左側(cè)全部關(guān)閉</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('親,后邊沒(méi)有啦 ^@^!!');
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('親,前邊那個(gè)上頭有人,咱惹不起哦。 ^@^!!');
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啦,代碼比原來(lái)優(yōu)雅多啦!
調(diào)用刷新,關(guān)閉當(dāng)前標(biāo)簽時(shí),就調(diào)用 closeTab(‘a(chǎn)ction') //action 可以為 refresh(刷新),close(關(guān)閉)
iframe 中使用時(shí),要這么屎 top.closeTab('action');
點(diǎn)此下載最新的Easyui應(yīng)用實(shí)例
1、下載DEMO源碼,并升級(jí)為最新版本(jquery 1.7.2,Easyui 1.2.6),直接替換就可以啦,升級(jí)easyui 是的要把css js theme 全部替換
2、在首頁(yè)的HTML代碼中:將
復(fù)制代碼 代碼如下:
<div id="mm" class="easyui-menu" style="width:150px;">
<div id="mm-tabupdate">刷新</div>
<div class="menu-sep"></div>
<div id="mm-tabclose">關(guān)閉</div>
<div id="mm-tabcloseall">全部關(guān)閉</div>
<div id="mm-tabcloseother">除此之外全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="mm-tabcloseright">當(dāng)前頁(yè)右側(cè)全部關(guān)閉</div>
<div id="mm-tabcloseleft">當(dāng)前頁(yè)左側(cè)全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="mm-exit">退出</div>
</div>
改為:
復(fù)制代碼 代碼如下:
<div id="mm" class="easyui-menu" style="width:150px;">
<div id="refresh">刷新</div>
<div class="menu-sep"></div>
<div id="close">關(guān)閉</div>
<div id="closeall">全部關(guān)閉</div>
<div id="closeother">除此之外全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="closeright">當(dāng)前頁(yè)右側(cè)全部關(guān)閉</div>
<div id="closeleft">當(dāng)前頁(yè)左側(cè)全部關(guān)閉</div>
<div class="menu-sep"></div>
<div id="exit">退出</div>
</div>
outlook2.js 中添加新方法如下:
復(fù)制代碼 代碼如下:
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('親,后邊沒(méi)有啦 ^@^!!');
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('親,前邊那個(gè)上頭有人,咱惹不起哦。 ^@^!!');
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 方法 改為
復(fù)制代碼 代碼如下:
function tabCloseEven() {
$('#mm').menu({
onClick: function (item) {
closeTab(item.id);
}
});
return false;
}
這樣就OK啦,代碼比原來(lái)優(yōu)雅多啦!
調(diào)用刷新,關(guān)閉當(dāng)前標(biāo)簽時(shí),就調(diào)用 closeTab(‘a(chǎn)ction') //action 可以為 refresh(刷新),close(關(guān)閉)
iframe 中使用時(shí),要這么屎 top.closeTab('action');
點(diǎn)此下載最新的Easyui應(yīng)用實(shí)例
相關(guān)文章
jQuery EasyUI中DataGird動(dòng)態(tài)生成列的方法
EasyUI中使用DataGird顯示數(shù)據(jù)列表中,有時(shí)需要根據(jù)需要顯示不同的列,例如,在權(quán)限管理中,不同的用戶登錄后只能查看自己權(quán)限范圍內(nèi)的列表字段,這就需要DataGird動(dòng)態(tài)組合列,下面介紹EasyUI中DataGird動(dòng)態(tài)生成列的方法2016-04-04
解決同一頁(yè)面中兩個(gè)iframe互相調(diào)用jquery,js函數(shù)的方法
本文主要介紹了解決同一頁(yè)面中兩個(gè)iframe互相調(diào)用jquery,js函數(shù)的方法,具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12
JQuery遍歷元素的后代和同胞實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JQuery遍歷元素的后代和同胞實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
模仿jQuery each函數(shù)的鏈?zhǔn)秸{(diào)用
模仿jQuery each函數(shù)的鏈?zhǔn)秸{(diào)用實(shí)現(xiàn)代碼。2009-07-07
js實(shí)現(xiàn)圖片放大縮小功能后進(jìn)行復(fù)雜排序的方法
這是一個(gè)基于jquery的圖片效果,它的作用是:當(dāng)圖片點(diǎn)擊變大(變小)時(shí),其它圖片按照一定的規(guī)則進(jìn)行排序運(yùn)動(dòng)2012-11-11

