说明: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. </div>
  1. //点击页面之后更新每个tab的内容,用到onSelect事件
  2. $(document).ready(function(){
  3. $(“#data_tabs”).tabs({
  4. onSelect:function(title, index){
  5. }
  6. });
  7. });
  8. var t = $(“#data_tabs”);
  9. var mytab = t.tabs('getSelected');  // 获取选择的面板
  10. t.tabs('update', {
  11. tab: mytab,
  12. options: {
  13. title: title,
  14. content: mycontent  // 新内容的URL
  15. }
  16. });

首先在页面上创建一个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文件需要被两次或多次请求

【EasyUI】Tabs常用操作及href和content的异同的更多相关文章

  1. JQuery EasyUI DataGrid常用操作及注意事项(未完)

    1.获取当前选中行,如果没有选中行,则返回 null var row = $('#gridID').datagrid('getSelected'); 2.获取当前所有选中行数据,返回的是选择的数组数据 ...

  2. easyui api常用操作

    一.FORM表单类 一.textbox validatebox 验证 1.验证规则:validType : 验证规则,类型STRING|ARRAY:1个规则就直接一个字符串,多个规则写在数组里 例如: ...

  3. 解决easyui tabs中href无法跨域跳转

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content ...

  4. Easyui tabs的herf和content属性

    在backstage.jsp页面中我写了一个方法,用于在指定位置添加面板(id为msg的地方)function addTab(t,h){ if($('#msg').tabs('exists',t)){ ...

  5. 关于html中的 script标签中的 代码写法有效性? easyui tabs的href不能载入内容页面

    script标签, 即 html中的 js脚本区域中: 它其实就是一个 普通的 html标签, 在 html 渲染器 parser 看来, 它跟其他任何的普通 的 html标签 , 比如 p 标签, ...

  6. 布局-EasyUI Panel 面板、EasyUI Tabs 标签页/选项卡、EasyUI Accordion 折叠面板、EasyUI Layout 布局

    EasyUI Panel 面板 通过 $.fn.panel.defaults 重写默认的 defaults. 面板(panel)当做其他内容的容器使用.它是创建其他组件(比如:Layout 布局.Ta ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  8. 设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用

    设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo ...

  9. EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)

    在项目实际开发中,有将打开的各个链接页面隔离的需求(防止静态资源起冲突),这个时候常规思路就是使用iframe来实现!但遇到一个比较棘手的问题,当用easyui Tabs打开一个iframe页面时,怎 ...

随机推荐

  1. MathType插入空格

    公式太长,换行后加一些空格,继续录. 将鼠标定位到需要插入空格的位置,此时如果直接按空格键,你会发现并不能插入空格.正确的输入方法有两种: 方法一,在菜单栏中[样式]菜单下选择[文本],随后按空格键即 ...

  2. PhantomJS 基础及示例

    腾讯云技术社区-掘金主页持续为大家呈现云计算技术文章,欢迎大家关注! 作者:link 概述 PhantomJS is a headless WebKit scriptable with a JavaS ...

  3. final修饰符的三种使用场景

    final有三种使用场景,各自是修饰变量.方法和类.不管哪种修饰.一旦声明为final类型.你将不能改变这个引用了,编译器会检查代码,假设你试图再次初始化,编译器会报错.以下我来详细说说每一种修饰场景 ...

  4. 用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)

    如今HTML5 移动应用或 Web app 中越来越普遍的使用了离线浏览技术,所以用 JavaScript 检测浏览器在线/离线状态非常常见. 无论浏览器是否在线,navigator.onLine 属 ...

  5. JSONObject和JSONArray(json-lib-2.4)的基本用法

    json-lib-2.4是一个用于JSON和java对象间转换的第三方包,其jar和依赖包下载地址在:https://files.cnblogs.com/files/xiandedanteng/jso ...

  6. Spring Ajax一个简单样例

    配置不说了.要在前面helloworld的样例基础上弄. 相同在hello下新建ajax.jsp <%@ page language="java" contentType=& ...

  7. ubuntu14.10环境下使用apache2.2配置代理服务器

    参考网址: 使用Apache架设代理服务器 ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse) Apache配置正向代理与反向代理 我的配置步骤: 1 ...

  8. B2:观察者模式 Observer

    定义了一种一对多的依赖关系,多个观察者对象同时监听某一主题的变化,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们可以更新自己. 应用场景:某个实例的变化影响到了其他对象. UML: 示例代 ...

  9. DB2日期与时间

    摘选自:http://www.cnblogs.com/wanghonghu/archive/2012/05/25/2518604.html 1.db2可以通过SYSIBM.SYSDUMMY1.SYSI ...

  10. jquery绑定事件的区别

    query中绑定事件有三种方法:以click事件为例 (1)target.click(function(){}); (2)target.bind("click",function( ...