【EasyUI】Tabs常用操作及href和content的異同


說明:EasyUI版本1.3.4 ,jQuery版本1.8.3

EasyUI Tabs常見使用方式

按照官方文檔的說法,創建Tabs的方式有兩種:

  1. 靜態頁面標簽
  2. 動態JS代碼

靜態方式主要用於創建一些內容固定的Tabs,而動態方式通常用來導入Ajax請求返回的內容或者嵌入其他已存在頁面。
我個人覺得創建並使用Tabs的方式其實只有一種,那就是先創建裝載選項卡的容器,然后在容器中放入具體的選項卡,至於你怎么放,就是官方給出的靜態和動態兩種方式了。

創建容器:

 

 
  1. <div id="data_tabs" data-options="fit:true,border:false,tabWidth:110,tabHeight:25" class="easyui-tabs"</div>  

添加選項卡到容器
1、靜態頁面標簽

 
  1. <div id="tt" class="easyui-tabs" style="width:500px;height:250px;">  
  2. <div title="Tab1" style="padding:20px;display:none;">  
  3.         tab1    
  4. </div>  
  5. <div title="Tab2" data-options="closable:true" style="overflow:auto;padding:20px;display:none;">  
  6.         tab2    
  7. </div>  
  8. <div title="Tab3" data-options="iconCls:'icon-reload',closable:true" style="padding:20px;display:none;">  
  9.         tab3    
  10. </div>  
  11. </div>  

2、動態JS代碼

 

 
  1. $('#tt').tabs('add',{    
  2.     title:'New Tab',    
  3.     content:'Tab Body',    
  4.     closable:true,    
  5.     tools:[{    
  6.         iconCls:'icon-mini-refresh',    
  7.         handler:function(){    
  8.             alert('refresh');    
  9.         }    
  10.     }]    
  11. });  

個人覺得,JS動態添加選項卡的情況會比較多,比如創建下面這樣的Tabs,內容是從其他頁面導入並動態更新的

 

如果在頁面上創建,擴展起來不方便,並且同時還需要在JS中使用Tabs的update功能,如果動態添加就會很方便,具體實現的代碼如下:

 

 
  1. <div id="data_tabs" data-options="fit:true,border:false,tabWidth:110,tabHeight:25" class="easyui-tabs">  
  2. <div title=””></div>  
  3. <div title=””></div>  
  4. <div title=””></div>  
  5. …  
  6. </div>  
 
  1. //點擊頁面之后更新每個tab的內容,用到onSelect事件  
  2. $(document).ready(function(){  
  3. $(“#data_tabs”).tabs({  
  4. onSelect:function(title, index){  
  5. …  
  6. }  
  7. });  
  8. });  
  9. var t = $(“#data_tabs”);  
  10.         var mytab = t.tabs('getSelected');  // 獲取選擇的面板   
  11.         t.tabs('update', {   
  12.             tab: mytab,   
  13.             options: {   
  14.                 title: title,   
  15.                 content: mycontent  // 新內容的URL   
  16.             }   
  17.         });  

首先在頁面上創建一個Tabs容器

 
  1. <div id="data_tabs" data-options="fit:true,border:false,tabWidth:110,tabHeight:25" class="easyui-tabs"></div>  

然后把所有選項卡的title和url信息保存在對象中,需要擴展就給這個對象添加title和url

 

 
  1. var userName = $("#userName").val();   
  2.     var userId = $("#userId").val();  
  3.     var titleAndUrls = {   
  4.             "大區" : "",   
  5.             "品牌" : BasePath+"/authority_user_brand/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId,   
  6.             "管理城市" : "",   
  7.             "經營城市" : BasePath+"/authority_user_managing_city/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId,   
  8.             "訂貨單位" : BasePath+"/authority_user_order_unit/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId,   
  9.             "結算公司" : BasePath+"/authority_user_settlement_company/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId,   
  10.             "店鋪" : BasePath+"/authority_user_store/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId,   
  11.             "倉庫" : BasePath+"/authority_user_storage/listtwo?moduleId=1&userName=" + userName + "&userId=" + userId   
  12.     };  

然后再遍歷這個對象創建出所有的tabs

 

 

 
  1. //遍歷titleAndUrls並創建所有tab   
  2.     $.each(titleAndUrls, function(title, url){   
  3.         user_data_auth.createTab(title, url);   
  4.     });  
  5. //用title和url創建tab   
  6. user_data_auth.createTab = function (title, url) {  
  7. var content = '<iframe src="' + url + '" frameborder="0" border="0" marginwidth="0" marginheight="0" scrolling="yes" width="100%" height="100%"  
  8.     $('#data_tabs').tabs('add', {   
  9.         title : title,   
  10.         selected : false,   
  11.         closable : false,   
  12.         content : content   
  13.     });   
  14. };  

如果需要創建完之后默認選中第一個,可以使用EasyUI Tabs的select函數

 

 

 
  1. //初始化第一個tab   
  2. $('#data_tabs').tabs("select", 0);  

 

url和content的異同

add或者update一個選項卡的時候,可以通過指定url屬性或者content屬性來嵌入其他頁面內容
使用url:嵌入的其他頁面和本頁面處於同一個作用域,也就是說,本頁面的和導入的JS方法不能有命名沖突,標簽的id也不能沖突,而且導入的頁面不能有body和html標簽,僅僅作為一個內容子頁面,此時導入頁面的JS代碼可以在本頁面一起引入,也可以在導入頁面的底部引入
使用content:嵌入時可以使用iframe標簽,也就是說你可以嵌入任意你想嵌入的內容而不受任何限制,但是嵌入完整頁面會造成一定程度的資源浪費,比如同樣一個js文件需要被兩次或多次請求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM