jquery-ui - jQuery UI 1.12 – 通过链接或 URL 激活选项卡
问题描述
如何根据 URL 中的井号标签(元素 ID)激活选项卡?
我知道这些年来这个问题已经被问过好几次了,但答案不再与 jQuery 1.10+ 相关。
谢谢。
解决方案
完成此操作有两个步骤 - 首先,将哈希标签(例如 #SomeValue)与您想要激活的选项卡的元素 ID 匹配;然后第二,将所述选项卡设置为活动状态。
var matchedTab = $('a[href="' + window.location.hash + '"]');
$('#tabs').tabs({active:$('#tabs a').index(matchedTab)});
第一行是从 tab 元素创建一个 jQ 对象,其href
属性与 URL 中的哈希值匹配。由于 Tabs 插件的标记需要(文档<a>
)您有一个带有属性的锚元素href
,这将找到正确的选项卡(假设您有一个与 URL 中的哈希相对应的选项卡)。
然后第二行使用active
初始化选项在初始化选项卡时设置所需的活动选项卡。尽管该active
选项需要 Tabs 集合中该选项卡的从零开始的索引,因此我们使用.index()
jQuery 函数来获取该索引并将其传递给active
选项。
由于沙盒站点都使用安全框架,我不得不使用带有虚拟 URL 的下拉菜单来“模拟”不同哈希标签的不同工作方式,但使用上面的代码它的功能相同。
CodePen 在这里:https ://codepen.io/anon/pen/YvyxvL
您可以使用该页面上的下拉菜单来模拟具有不同哈希标记的 URL 的行为,将不同的选项卡设置为活动状态。
推荐阅读
- promise - 如何仅导入(使用 webpack)bluebird.js 的核心?
- ruby - ruby - 在代码中构造转义命令
- c# - 将 Cefsharp 屏幕外转换为 winform
- android - 离子,科尔多瓦无法合并dex
- jenkins - 如何在并行詹金斯管道中生成聚合的宁静测试报告
- ruby - 从字符串中获取时间(以秒为单位)并添加到当前时间?
- influxdb - influxdb 查询 5 个最高 cpu 使用率
- c# - MVC + WebApi。授权和认证
- encryption - javacardx AES 加密不等于 javax AES 解密
- mysql - Oracle 中是否有与 WITH 关键字等效的 MySQL