根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
dynamically select jquery UI tabs based on hash ID from a text link inside tabs
我有一组由CMS生成的jQuery UI选项卡,因此每个页面的内容都不同。一些选项卡集可能有两个选项卡,其他选项卡集可能只有5个等。
我四处寻找一个简单的解决方案,但似乎找不到。我已经查看了历史插件以及其他代码。
这是我的示例标记
<div id="tabs">
<ul>
<li><a href="#tabs-1">TAB 1 HEADING</a></li>
<li><a href="#tabs-2">TAB 2 HEADING</a></li>
<li><a href="#tabs-3">TAB 2 HEADING<a></li>
<li><a href="#tabs-4">TAB 3 HEADING</a></li>
</ul>
</div>
<div id="tabs-1">tab1 content here</div>
<div id="tabs-2">tab2 content here</div>
<div id="tabs-3">tab2 content here</div>
<div id="tabs-4">tab4 content here</div>
我想创建一个脚本,允许用户从选项卡内容中的文本链接中交替选择选项卡。例如,在选项卡内容div中,与选项卡导航一样,具有指向第三个选项卡的链接。我不想在脚本中手动编码所需选项卡的索引。
我知道这会起作用,但我想在我所有的选项卡内容中创建一个更健壮的东西。
$("#tabs").tabs("select" , "#tab-4");
这是我目前所拥有的,但似乎不起作用。我是jQuery的新手。我添加了一个名为tabJump的链接到锚链接。
function tabJump(){
//get href ID as a number
var thisID = Number($(this).attr('href').replace(/#tabs-/, '')) - 1;
// this should trigger the new tab based on this href id.
$("#tabs").tabs("select" , "#tabs-" + thisID);
};
还有关于我如何让它发挥作用的想法?从本质上讲,我想要标记的id作为被点击的锚链接的href,并通过这个给定的id来定位新的选项卡。我想要具有这些id hrefs的链接的多个实例。
提前谢谢。
好的,谢谢大家,终于找到了我需要的东西。
如果有人觉得这很有用,我会在下面分享。
点击启动功能
<p><a href="#tabs-4" onclick="tabJump(this);">my text link</a></p>
和脚本
function tabJump(obj) {
//grab the id in the clicked links href
var thisID = Number($(obj).attr('href').replace(/#tabs-/, ''));
//use this ID to trigger the click on the set of tabs
$("#tabs").tabs("select", "#tabs-" + thisID);
//then scroll to the top of the tabs set
$('html, body').animate({
scrollTop: $("#tabs").offset().top
});
};
所以我使用它的方式是,一旦在我的CMS中的文章中创建了选项卡中的内容,我就会得到4或10个选项卡。然后在第一个选项卡中有一些副本需要链接,比如选项卡4。因此,我在链接中添加了一个onclick,并在需要时附加jQuery脚本,如上所示。
谢谢大家的帮助和建议。如果有人有更干净的方法,请随意发帖。
和平
不确定这是否是您所需要的,但看看这是否有效。
这是一把正在工作的小提琴。
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>This is tab ONE</p>
<p><a href="#" class="next">Go to next tab</a></p>
<p><a href="#" class="prev">Go to prev tab</a></p>
</div>
<div id="tabs-2">
<p>This is tab TWO</p>
<p><a href="#" class="next">Go to next tab</a></p>
<p><a href="#" class="prev">Go to prev tab</a></p>
</div>
<div id="tabs-3">
<p>This is tab THREE</p>
<p><a href="#" class="next">Go to next tab</a></p>
<p><a href="#" class="prev">Go to prev tab</a></p>
</div>
$("#tabs").tabs();
$("#tabs div a").on("click", function(){
var idx = Number($(this).parent().parent().attr('id').replace('tabs-','')) - 1;
if($(this).attr('class') == 'next'){
$( "#tabs" ).tabs( "option", "selected", idx + 1 );
}
else{
$( "#tabs" ).tabs( "option", "selected", idx - 1 );
}
});
我认为函数tabJump
可能有效。只需要更改对方法select
的调用,使其仅使用数字(thisID),而不是与字符串"#tabs-"连接。
像这样:
function tabJump(){
//get href ID as a number
var thisID = Number($(this).attr('href').replace(/#tabs-/, '')) - 1;
// this should trigger the new tab based on this href id.
$("#tabs").tabs("select" , thisID);
};
- 使用Javascript获取所选选项ID
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 从Bootstrap获取活动选项卡ID并将其传递给PHP
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 如何在angular js中的select选项中获取所选项目id
- 为什么数据列表选项的id返回空值
- 如何将value和id动态添加到html下拉选项标记中
- Chrome扩展插件:runtime.last运行tabs.get/tabs.remove时出错:没有id为0的选项卡
- 我得到未捕获的类型错误:无法读取属性'选项'即使定义了元素id,也为null
- 将select选项添加到id中
- 具有一个#id的多选选项可显示n个隐藏表
- 单击图像时从数据库加载选项id
- 如何在脚本中选择之前获取所有选项id值
- 如何在一次点击中获取所有选定的选项值ID
- 如何在 KnockoutJS 中获取所选项目的 ID
- 如何通过Javascript从两个选择/选项id构建图像名称/路径
- 如何使用javascript获取选项id值
- 如何在jquery中获取所选的选项id
- 在html下拉列表中选择一个项目,只有javascript/JQuery中的选项Id