[From] https://blog.csdn.net/zhangfeng2124/article/details/76672403

需求:

1、tabs默认只有一个页签,但是需要点击某按钮,动态添加页签(添加多个)

2、tabs动态添加页签后,需要跳转到新添加的页签

查找tabs api以及tabs的源码后,发现tabs没有直接实现这两个功能的方法 附上一文化tabs api链接:http://www.css88.com/jquery-ui-api/tabs/

最后通过查看tabs的页签添加规则后,自己实现动态添加和跳转。

tabs添加的页签都是在class属性值为ui-tabs-nav下的ui标签下,页签头都是li标签

找到规则后,那么动态添加页签就容易了。

请看代码:

  1. var tabs = $( "#tabs" ).tabs();
  2. tabs.find( ".ui-tabs-nav" ).append( "<li id='add_tab' ><a href='#tabs-2'>页签1</a></li>" );
  3. tabs.tabs( "refresh" );

注意tabs的refresh方法,必须要刷新一下,新添加的页签才会生效。

下面解决跳转新页签问题:

tabs也没有提供获取所有页签的方法,所以还得自己想办法获取所有的页签,再来比较。

查看tabs生成的html发现,tabs生成的li标签有个aria-controls属性,这个属性的值就是我们自定义的页签名(tabs-2)

请看代码:

  1. var lies = tabs.find( ".ui-tabs-nav li" );
  2. for(var i = 0; i < lies.length; i++){
  3. if($(lies[i]).attr("aria-controls") == 'tabs-2'){
  4. $( "#tabs" ).tabs( "option", "active", i );
  5. }
  6. }

动态添加的页签下具体内容,需要预先定义好并隐藏。

ok,就这么愉快的解决了。

下面附上一个完整的tabs例子,例了与上面动态添加不相关:

HTML:

  1. <div id="tabs">
  2. <ul>
  3. <li><a href="#tabs-1">基本信息</a></li>
  4. <li><a href="#tabs-2">扩展内容</a></li>
  5. </ul>
  6. <div id="tabs-1"  style="width:97%;overflow-y:auto;margin: 0 auto;height: 95%;">基本信息</div>
  7. <div id="tabs-2"  style="width:97%;overflow-y:auto;margin: 0 auto;height: 95%;">扩展内容</div>
  8. </div>

JS:

    1. $( "#tabs" ).tabs({
    2. beforeActivate: function( event, ui ) {
    3. var id = ui.newPanel[0].id;
    4. if(id == "tabs-1"){
    5. // 跳转到基本信息页签时触发
    6. }
    7. if(id == "tabs-2"){
    8. // 跳转到扩展内容页签时触发
    9. }
    10. }
    11. });

[转] JQuery UI Tabs 动态添加页签,并跳转到新页签的更多相关文章

  1. jquery mobile Checkbox动态添加刷新及事件绑定

    jquery mobile Checkbox动态添加刷新及事件绑定 在微信项目中,涉及到一个多选功能.数据来自后台数据库,需要动态加载. 项目结构:微信api+web app.使用jquery mob ...

  2. jQuery ui背景色动态渐变导航菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 在vue中无论使用router-link 还是 @click事件,发现都没法从列表页点击跳转到内容页去

    在vue中如论使用router-link 还是 @click事件,发现都没法从列表页点击跳转到内容页去,以前都是可以的,想着唯一不同的场景就是因为运用了scroll组件(https://ustbhua ...

  4. jquery.UI.tabs

    今天对jquery UI的tabs进行了进一步的了解,目的是想把死板的切换效果变得动感点,不过经过这进一步的了解,发现它并不合适或都说并不能实现我想要的效果,我想要的效果就是类似淘宝商城的banner ...

  5. 获取JQuery UI tabs中被选中的tabs的方法

    JQuery标签事件处理实例 如果你正在使用JQuery tabs而且想从基本的功能扩展到自定义的功能,这是你最好知道如何处理JQuery的点击事件. 在这篇文章中: 1.回顾如何添加当tab被点击时 ...

  6. jquery ui tabs详解(中文)

    1 属性1.11 ajaxOptions,当选项卡加载内容时,添加一个ajax选项.只有ajax时,添加的ajax选项才起作用.默认值为null.上面的例子中,添加了beforeSend和succes ...

  7. 如何解决jQuery Validation针对动态添加的表单无法工作的问题?

    为了充分利用ASP.NET MVC在服务端呈现HTML的能力,在<利用动态注入HTML的方式来设计复杂页面>一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案 ...

  8. jQuery如何获取动态添加的元素

    1. 使用 on()方法        本质上使用了事件委派,将事件委派在父元素身上     自 jQuery 版本 1.7 起,on() 方法是 bind().live() 和 delegate() ...

  9. jquery监听动态添加的input的change事件

    使用下面方法在监听普通的input的change事件正常 $('#pp').on('change', 'input.videos_poster_input', function () { consol ...

随机推荐

  1. 33.HAVING 子句

    HAVING 子句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用. SQL HAVING 语法 SELECT column_name, aggregate_f ...

  2. 12.Alias(别名)

    通过使用 SQL,可以为列名称和表名称指定别名(Alias). SQL Alias 表的 SQL Alias 语法 SELECT column_name(s) FROM table_name AS a ...

  3. 【原创】boost::recursive_mutex请小心使用

    recursive_mutex会减少死锁几率?恩看上去的确如此,但是事实上呢?我们从BOOST的官方逻辑去理解: recursive_mutex类可多次进入锁,这样在递归时可以避免一次死锁的几率,这是 ...

  4. 7.python实现高效端口扫描器之nmap模块

    对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...

  5. session的应用----验证码

    昨天登录功能中叙述了密码 用户名的数据库验证以及转发 那么这篇文章在昨天的基础上 处理验证码的验证功能,今天需要用到session域,session用于一次会话. package cn.lijun.d ...

  6. VS Code 运行html文件

    用VS Code编写html文件,想在VS Code中直接打开运行,配置如下: 配置tasks.json 打开VS Code,点击"终端",选择"配置任务". ...

  7. 原生态js,返回至顶部

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 「BZOJ1433」[ZJOI2009] 假期的宿舍(二分图,网络流)

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...

  9. Laravel-安装composer

    一.系统环境   Laravel框架有些系统上的要求,因此需要保证自己运行环境.要求的环境有:对于PHP的版本要求比较法高,其他的是扩展,可以在php.ini文件中开启 PHP >= 5.5.9 ...

  10. SDUT OJ 数据结构上机测试1:顺序表的应用

    数据结构上机测试1:顺序表的应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...