easyui-tabs简单操作(随笔)

本文详细介绍了如何通过EasyUI库操作tabs组件,包括获取当前tab标题、根据标题获取tab、按索引显示tab,以及在iframe加载的tabs中获取并操作特定tab内的属性,如触发刷新事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、获取tab相关属性操作

          // 获取当前tab标题
           var pageTitle = $('.tabs-selected').text();  
          //根据标题(或索引)获取tab
           var tab = $('#centerTabs').tabs('getTab', pageTitle); 
         if (tab){
                  //根据tab获取索引
            var index = $('#centerTabs').tabs('getTabIndex', tab); 
           //按索引默认显示    
            $('#centerTabs').tabs('select',index);//显示  
        }

注:centerTabs为easyui-tabs层的ID

2、在tabs里获取对应的tab,并对tab里的属性相关操作(触发事件等)
前提:tabs使用’iframe’方式加载

                //$('.tabs-selected').text();  
                var tabTitle="销售出库单信息列表";
                var refresh_tab = $('#centerTabs').tabs('getTab',tabTitle);
                if(refresh_tab && refresh_tab.find('iframe').length > 0){ 
                       //获取到选定的tab下的iframe
                    var _refresh_ifram = refresh_tab.find('iframe')[0];
                    //获取到选定的tab下的iframe中的内容(此处默认第一个tab)
                    var refresh_doc = _refresh_ifram.contentWindow;
                    //获取到刷新元素#reflesh
                    var refind = refresh_doc.$('#reflesh');
                if(refind==null){
                    return false;//没有元素时返回false
                } else{ 
                   refind.click();//找到元素ID时,进行点击事件刷新。
                   }
                }    
### 实现 EasyUI Tabs 切换时清空当前 Tab 的组件结构 为了实现 EasyUI Tabs 组件在切换标签页时自动清除当前标签页的内容,可以监听 `onSelect` 或者 `onClickTab` 事件,在这些事件处理程序中执行清理逻辑。 #### 使用 onSelect 事件 通过绑定 `onSelect` 事件,可以在每次选择不同的选项卡之前先移除现有内容: ```javascript $('#index_tabs').tabs({ onSelect: function(title){ var currentTab = $('#index_tabs').tabs('getSelected'); // 获取被选中的面板 if(currentTab){ $(currentTab.panel('options').content).remove(); // 移除旧的内容 currentTab.panel('refresh',''); // 清理并刷新面板 } } }); ``` 此方法利用了 panel 方法来获取和更新指定 tab 的属性[^1]。需要注意的是,调用 `panel('refresh', '')` 并不会实际更改 iframe 中加载的 URL 地址;它只是重新渲染该区域而不影响其原始链接设置[^2]。 另外一种方式是在创建新 tab 前检查是否存在同名项,并对其进行替换而不是简单地添加新的实例: ```javascript var jq = top.jQuery; $("#dkdw").click(function(){ var url = "/EstateBusiness/dkxz/todkxz"; var content = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:99%;"></iframe>'; if(jq("#workspace").tabs('exists', "地块选择")){ let targetTab = jq('#workspace').tabs('getTab', '地块选择'); targetTab.panel('update',{ href : '', content: '' }); setTimeout(() => { jq("#workspace").tabs('close', "地块选择"); jq("#workspace").tabs('add',{ title:"地块选择", content:content, closable:true }); }, 50); }else{ jq("#workspace").tabs('add',{ title:"地块选择", content:content, closable:true }); } }); ``` 这段代码展示了如何安全地关闭已有的相同名称的 tab 后再新建一个具有同样标题的新 tab 来达到视觉上的覆盖效果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值