/*总觉得 TabPanel 生成的那个关闭按钮太小
关闭的时候不太顺手 感觉不方便 所以想双击关闭tab方便些
于是在网上找到下面的代码 
URL:http://atian25.iteye.com/blog/413920
可是用在我的系统框架上无效,本人用的是ExtJs4.1。
不知道是不是我的问题,可是实在找不出错在哪里。
于是 自己想了个办法 亲测支持ExtJs4.1 
可能有点麻烦 可是没办法 上面那个方法 我实在是找不出问题在哪里
*///////////////////---下面是网上找的方法 本人无效------////////////////////

  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的代码

  1. {
  2. xtype: "tabpanel",
  3. region: "center",
  4. id: "tabpanel",
  5. minTabWidth: 100,
  6. listeners: {
  7. 'tabchange': function () {
  8. }
  9. }
  10. }

我是动态生成tab的 所以就写成这样了 注意里面的代码 双击关闭就是这里面

  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. }
  1. //用下面的代码可以测试添加Tab
  2. CreateTab("0", "我的工作台", "MyHome.htm");
  3. CreateTab("1", "账户管理", "User.htm");

更多0

ExtJS4.1 ExtJS TabPanel 双击标签关闭该页的更多相关文章

  1. 15.extjs tabPanel的用法

    转自:https://blog.csdn.net/mezhaha/article/details/78878894 本文导读:TabPanel继承于Ext.Panel,Ext.TabPanel就是有选 ...

  2. Extjs TabPanel 选项卡延迟加载

    Extjs TabPanel 选项卡延迟加载 说明: Ext中用到tabpanel选项卡控件, 选项卡页签默认是延迟加载的, 当用户手工切换到某页签下时该页签才会加载, 在页签没有加载前, 用户对该页 ...

  3. 16. Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例

    转自:https://crabdave.iteye.com/blog/327978 Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例 效果: 创建调用的HTML: ...

  4. Bootstrap 基于Bootstrap和JQuery实现动态打开和关闭tab页

    基于Bootstrap和JQuery实现动态打开和关闭tab页   by:授客 QQ:1033553122 1.   测试环境 JQuery-3.2.1.min.j Bootstrap-3.3.7-d ...

  5. thickbox关闭子页后ajax局部刷新父页

    1. 首先注意需要调用thickbox的js <script type="text/javascript" src="<%=path%>/js/jque ...

  6. [DevExpress]XtraTabControl右键加入关闭当前页、关闭其它页、所有关闭的实现

    private void xtraTabControl_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButton ...

  7. JS强制关闭浏览器页签并且不提示关闭信息

    工作中很多奇葩的需求都会出现,现在就有一个问题,描述如下: 现在的登录跳转权限页面要去掉,集成在第三方系统信息上,当退出登录的时候需要关掉打开的Tab页面,因此考虑使用window.close()关闭 ...

  8. Extjs TabPanel页签转换事件

    listeners : { tabchange : function(tp, p) { var allmapDIV = document.getElementById("allmap&quo ...

  9. ExtJS4中设置tabpanel的tab高度问题

    最近碰到个问题,在ExtJS中应该如何设置tabpanel的tab的高度?因为默认情况下,tab的高度太矮了,以至于tab的标题底部字都被截掉.设置了个tabpanel.minHeight = ‘50 ...

随机推荐

  1. libuv 一 环境搭建, hello TTY

    引言 - 一时心起, libuv linux 搭建 有一天突然想起来想写个动画. 找了一下 ui 库太大. 后面想起以前弄过的 libuv. 但发现 libuv 相关资料也很少. 所以就有了这些内容. ...

  2. 20180830 安装git时报错,

    安装:https://blog.csdn.net/u013256816/article/details/54743470 解决问题:https://blog.csdn.net/daojibruce/a ...

  3. Git提交记住用户名和密码

    https://www.baidu.com/link?url=R14MHMloypfAfIeiQwCINfY1AZlcoSU7-tYdnqC1PxfmFKs4TWzLOPdtyJbWVfqMqOkRx ...

  4. jQuery常用事件方法详解

    目录 jQuery事件 ready(fn)|$(function(){}) jQuery.on() jQuery.click jQuery.data() jQuery.submit() jQuery事 ...

  5. 详述Linux配置静态IP、设置DNS和主机名(一)

    Linux配置静态IP.设置DNS和主机名首先要找到配置文件,这是在Linux系统下进行工作的必须知道工作方式.后面一步步的跟着这个范例来进行配置相信你最终也会完成Linux配置静态IP.设置DNS和 ...

  6. Java打包问题之一:打包出现java.io.IOException: invalid header field

    前言 java的打包工具jar有时候会出一些莫名其妙的问题,比如不合法的头部字段等等.这些问题之前也没注意,因为一直是用eclipse打包.后来在公司的时候,要求统一编写shell脚本来进行打包. 其 ...

  7. 转载:C++ typename的起源与用法

    转载:http://feihu.me/blog/2014/the-origin-and-usage-of-typename/#typename 侯捷在Effective C++的中文版译序中提到: C ...

  8. day5 常用模块json和pickle

    json 和 pickle json和pickle是用于字符串序列化和反序列化的过程,我们在存储和使用的时候,经常把列表存入文件,读取的时候我们还想以列表的形式读取.就需要使用json和pickle. ...

  9. c++ primer 3 标准库类型

    3.1 命名空间的using声明 using声明是对某个命名空间做引入.主要作用是简化代码编写. 比如用cout的三种方式: using namespace std; using std::cout; ...

  10. JavaScript最全编码规范

    转载: JavaScript最全编码规范 类型 ●基本类型:访问基本类型时,应该直接操作类型值 ●string ●number ●boolean ●null ●undefined var foo = ...