[转] JQuery UI Tabs 动态添加页签,并跳转到新页签
[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标签
找到规则后,那么动态添加页签就容易了。
请看代码:
- var tabs = $( "#tabs" ).tabs();
- tabs.find( ".ui-tabs-nav" ).append( "<li id='add_tab' ><a href='#tabs-2'>页签1</a></li>" );
- tabs.tabs( "refresh" );
注意tabs的refresh方法,必须要刷新一下,新添加的页签才会生效。
下面解决跳转新页签问题:
tabs也没有提供获取所有页签的方法,所以还得自己想办法获取所有的页签,再来比较。
查看tabs生成的html发现,tabs生成的li标签有个aria-controls属性,这个属性的值就是我们自定义的页签名(tabs-2)
请看代码:
- var lies = tabs.find( ".ui-tabs-nav li" );
- for(var i = 0; i < lies.length; i++){
- if($(lies[i]).attr("aria-controls") == 'tabs-2'){
- $( "#tabs" ).tabs( "option", "active", i );
- }
- }
动态添加的页签下具体内容,需要预先定义好并隐藏。
ok,就这么愉快的解决了。
下面附上一个完整的tabs例子,例了与上面动态添加不相关:
HTML:
- <div id="tabs">
- <ul>
- <li><a href="#tabs-1">基本信息</a></li>
- <li><a href="#tabs-2">扩展内容</a></li>
- </ul>
- <div id="tabs-1" style="width:97%;overflow-y:auto;margin: 0 auto;height: 95%;">基本信息</div>
- <div id="tabs-2" style="width:97%;overflow-y:auto;margin: 0 auto;height: 95%;">扩展内容</div>
- </div>
JS:
- $( "#tabs" ).tabs({
- beforeActivate: function( event, ui ) {
- var id = ui.newPanel[0].id;
- if(id == "tabs-1"){
- // 跳转到基本信息页签时触发
- }
- if(id == "tabs-2"){
- // 跳转到扩展内容页签时触发
- }
- }
- });
[转] JQuery UI Tabs 动态添加页签,并跳转到新页签的更多相关文章
- jquery mobile Checkbox动态添加刷新及事件绑定
jquery mobile Checkbox动态添加刷新及事件绑定 在微信项目中,涉及到一个多选功能.数据来自后台数据库,需要动态加载. 项目结构:微信api+web app.使用jquery mob ...
- jQuery ui背景色动态渐变导航菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 在vue中无论使用router-link 还是 @click事件,发现都没法从列表页点击跳转到内容页去
在vue中如论使用router-link 还是 @click事件,发现都没法从列表页点击跳转到内容页去,以前都是可以的,想着唯一不同的场景就是因为运用了scroll组件(https://ustbhua ...
- jquery.UI.tabs
今天对jquery UI的tabs进行了进一步的了解,目的是想把死板的切换效果变得动感点,不过经过这进一步的了解,发现它并不合适或都说并不能实现我想要的效果,我想要的效果就是类似淘宝商城的banner ...
- 获取JQuery UI tabs中被选中的tabs的方法
JQuery标签事件处理实例 如果你正在使用JQuery tabs而且想从基本的功能扩展到自定义的功能,这是你最好知道如何处理JQuery的点击事件. 在这篇文章中: 1.回顾如何添加当tab被点击时 ...
- jquery ui tabs详解(中文)
1 属性1.11 ajaxOptions,当选项卡加载内容时,添加一个ajax选项.只有ajax时,添加的ajax选项才起作用.默认值为null.上面的例子中,添加了beforeSend和succes ...
- 如何解决jQuery Validation针对动态添加的表单无法工作的问题?
为了充分利用ASP.NET MVC在服务端呈现HTML的能力,在<利用动态注入HTML的方式来设计复杂页面>一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案 ...
- jQuery如何获取动态添加的元素
1. 使用 on()方法 本质上使用了事件委派,将事件委派在父元素身上 自 jQuery 版本 1.7 起,on() 方法是 bind().live() 和 delegate() ...
- jquery监听动态添加的input的change事件
使用下面方法在监听普通的input的change事件正常 $('#pp').on('change', 'input.videos_poster_input', function () { consol ...
随机推荐
- c语言实践 判断一个数是不是素数
int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...
- setnx()
setnx(key,value):当指定的key不存在时,为你设置指定的值
- Part5核心初始化_lesson2---设置svc模式
我们的Linux系统以及bootloader是工作在SVC模式!!怎么把处理器设置为SVC模式呢? CPSR寄存器或者SPSR寄存器最低5位可以设置模式,把该5位设置为0b10011, start.s ...
- 查询某张表被哪些存储过程或者视图用到的sql语句
/*查询某张表被哪些存储过程或者视图用到的sql语句*/select distinct object_name(id) from syscomments where id in (select id ...
- Day3作业 .
,))::])]): :-])# 3,使用while和for循环分别打印字符串s=’asdfer’中每个元素. # 4,实现一个整数加法计算器:# 如:content = input(‘请输入内容:’ ...
- C# 抽象
好多人将抽象类也作为多态的一种,其实我觉得并不是特别的好. 抽象在C#中是类的一种表现. 如果将类作为多态,那么前面所有的东西不就白费了吗? C#的 抽象很简单. 那就是抽象. 基本就是高度抽象. 那 ...
- day02.2-列表内置方法
列表——list的定义:test = [1,12,9,"age",["zizai","jiapu"],"alex"] 特 ...
- C# Winform 加载窗体/对象时的等待页面设计
在设计应用程序过程中,有时候加载对象需时较长,我们可以显示一个Loading等待页面,对用户来说就比较友好了. 这个还是涉及到多线程,下面是步骤. 一.创建好Loading窗体: 一个Panel用于显 ...
- loj #6201. 「YNOI2016」掉进兔子洞
#6201. 「YNOI2016」掉进兔子洞 您正在打galgame,然后突然发现您今天太颓了,于是想写个数据结构题练练手: 给出一个长为 nnn 的序列 aaa. 有 mmm 个询问,每次询问三个区 ...
- loj #2509. 「AHOI / HNOI2018」排列
#2509. 「AHOI / HNOI2018」排列 题目描述 给定 nnn 个整数 a1,a2,…,an(0≤ai≤n),以及 nnn 个整数 w1,w2,…,wn.称 a1,a2,…,an 的 ...