ExtJS4.1 ExtJS TabPanel 雙擊標簽關閉該頁


/*總覺得 TabPanel 生成的那個關閉按鈕太小
關閉的時候不太順手 感覺不方便 所以想雙擊關閉tab方便些
於是在網上找到下面的代碼 
URL:http://atian25.iteye.com/blog/413920
可是用在我的系統框架上無效,本人用的是ExtJs4.1。
不知道是不是我的問題,可是實在找不出錯在哪里。
於是 自己想了個辦法 親測支持ExtJs4.1 
可能有點麻煩 可是沒辦法 上面那個方法 我實在是找不出問題在哪里
*///////////////////---下面是網上找的方法 本人無效------////////////////////
[javascript]  view plain copy
  1.     var tabs = new Ext.TabPanel({  
  2.     renderTo: 'tabs1',  
  3.     width:450,  
  4.     activeTab: 0,  
  5.     frame:true,  
  6.     defaults:{autoHeight: true},  
  7.     items:[  
  8.         {contentEl:'script', title: 'Short Text'},  
  9.         {contentEl:'markup', title: 'Long Text'}  
  10.     ],  
  11.     initEvents : function(){  
  12.       Ext.TabPanel.superclass.initEvents.call(this);  
  13.       this.on('add', this.onAdd, this, {target: this});  
  14.       this.on('remove', this.onRemove, this, {target: this});  
  15.       this.mon(this.strip, 'mousedown', this.onStripMouseDown, this);  
  16.       this.mon(this.strip, 'contextmenu', this.onStripContextMenu, this);  
  17.       if(this.enableTabScroll){  
  18.           this.mon(this.strip, 'mousewheel', this.onWheel, this);  
  19.       }  
  20.       //ADD:monitor title dbclick  
  21.       this.mon(this.strip,'dblclick',this.onTitleDbClick,this);  
  22.   },  
  23.                  //ADD: handler  
  24.   onTitleDbClick:function(e,target,o){  
  25.     var t = this.findTargets(e);  
  26.     if (t.item.fireEvent('beforeclose', t.item) !== false) {  
  27.                         t.item.fireEvent('close', t.item);  
  28.                         this.remove(t.item);                  
  29.                    }  
  30.   }  
  31. });  


-----下面是我的方法--------

有用到 Viewport 只貼出了 tabpanel的代碼
[javascript]  view plain copy
  1. {  
  2.     xtype: "tabpanel",  
  3.     region: "center",  
  4.     id: "tabpanel",  
  5.     minTabWidth: 100,  
  6.     listeners: {  
  7.         'tabchange': function () {  
  8.         }  
  9.     }  
  10. }  
我是動態生成tab的 所以就寫成這樣了 注意里面的代碼 雙擊關閉就是這里面
[javascript]  view plain copy
  1. var CreateTab=function(id,title,url){  
  2.         var tabs = Ext.getCmp("tabpanel");  
  3.                 for (var i = 0; i < tabs.items.length; i++) {  
  4.                     if (tabs.items.items[i].title == title) {  
  5.                       tabs.items.items[i].show();  
  6.                       return;  
  7.                     }  
  8.                 }  
  9.                 var NewTabPanel= Ext.create('Ext.panel.Panel', {  
  10.                     layout: 'fit',   
  11.                     title: title,   
  12.                     collapsible: true,   
  13.                     closable: id==0?false:true,   
  14.                     autoScroll: false,  
  15.                     initEvents: function () {  
  16.                         var obj = this;  
  17.                         var id = 'tab-' + (this.id.split('-')[1] - 1 + 2) + '-btnWrap';  
  18.                         Ext.get(id).dom.ondblclick = function () {  
  19.                             if(obj.title!='我的工作台')  
  20.                                 tabs.remove(obj);  
  21.                         }  
  22.                     },  
  23.                     html: '<iframe name="mainframe" width="100%" height="100%" frameborder="0" src="'+url+'"></iframe>'  
  24.                 });  
  25.                 tabs.add(NewTabPanel).show();  
  26. }  
[javascript]  view plain copy
  1. //用下面的代碼可以測試添加Tab  
  2. CreateTab("0", "我的工作台", "MyHome.htm");  
  3. CreateTab("1", "賬戶管理", "User.htm");  
更多0


免責聲明!

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



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