js部分javascript
/* * 添加右擊table菜單欄事件 */ $("#tabs").tabs({ //爲其附加鼠標右鍵事件 onContextMenu: function(e, title, index){ //該方法通知瀏覽器不要執行與此事件關聯的默認動做 //即屏蔽了瀏覽器在tab頁上的鼠標右鍵事件 e.preventDefault(); var mm = $("#tabsmenu"); //顯示右鍵菜單 mm.menu("show",{ top: e.pageY, left: e.pageX }).data("tabTitle",title); //爲右鍵菜單選項綁定事件 mm.menu({ onClick: function(item){ closeTab(this, item.name); } }); } }); /* * 關閉tabs方法的具體實現 */ function closeTab(menu, type){ //返回全部的選項卡 var allTabs = $("#tabs").tabs("tabs"); var allTabTitle = []; // console.log(allTabs);這裏是dom節點 $.each(allTabs, function(i, n){ // console.log(n);這裏是當前打開的每個tabs的jQuery對象 //這裏是返回的options對象 var opt = $(n).panel("options"); if(opt.closable){//若是顯示關閉按鈕 //就把當前選中的選項卡的標題放入空數組中 allTabTitle.push(opt.title); } }); //這裏是將獲取當前選項卡的標題 var curTabTitle = $(menu).data("tabTitle"); switch(type){ case 1: //關閉當前 -- 這裏是根據選項卡的標題來關閉選項卡 $("#tabs").tabs("close", curTabTitle); return false; break; case 2: //關閉其餘 for(var i = 0; i < allTabTitle.length; i++){ if(curTabTitle != allTabTitle[i]){ $("#tabs").tabs("close",allTabTitle[i]); } } //這裏是關閉完了其餘選項卡以後,就選中當前選項卡 $("#tabs").tabs("select",curTabTitle); break; case 3: //關閉右側 for(var i = 0; i < allTabTitle.length; i++){ //先經過循環遍歷,獲取出當前選項卡所對應的下標 if(curTabTitle == allTabTitle[i]){//相等的時候表示爲當前,若是大於表示右側,若是小於,表示左側 //關閉右側,其實就是關閉下標比當前下標大一些的選項卡 for (var j = i + 1; j < allTabTitle.length; j++) { //而後這裏的循環就從i+1開始,只要小於全部選項卡數組的長度,就直接刪除 $("#tabs").tabs("close",allTabTitle[j]);//關閉右側就關閉i+1 } } } break; case 4: //關閉左側 for(var i = 0; i < allTabTitle.length; i++){ //先經過循環遍歷,獲取出當前選項卡所對應的下標 if(curTabTitle == allTabTitle[i]){//相等的時候表示爲當前,若是大於表示右側,若是小於,表示左側 //這裏關閉左側的原理,就是關閉比當前選中選項卡的下標要小的選項卡 for (var j = 0; j < i; j++) {//這裏就從0開始刪,到i-1結束 //這裏就是開始循環刪除,只要j是小於i的就直接刪除 $("#tabs").tabs("close",allTabTitle[j]);//關閉右側就關閉i+1 } } } break; case 5: //關閉全部 for(var i = 0; i < allTabTitle.length; i++){ $("#tabs").tabs("close",allTabTitle[i]); } break; } } });
htmlcss
<head> <%@include file="common/header.jsp"%> <%-- <link rel="stylesheet" href="/static/css/main.css">--%> <title>Title</title> <script type="text/javascript" src="/static/js/module/main.js"></script> </head> <body class="easyui-layout"> <%--右鍵關閉選項卡--%> <div id="tabsmenu" class="easyui-menu" style="width:100px;display: none"> <div data-options="name:1" id="now" iconcls="icon-shield">關閉當前</div> <div data-options="name:2" id="other" iconcls="icon-shield">關閉非當前</div> <div data-options="name:3" id="right" iconcls="icon-shield">關閉右側全部</div> <div data-options="name:4" id="left" iconcls="icon-shield">關閉左側全部</div> <div data-options="name:5" id="all" iconcls="icon-shield">關閉全部</div> </div>