如何创建一个滚动到下一个jQuery选项卡的按钮。我想在选项卡中有一个下一个按钮,它将滚动到下一个选项卡,有点像分步教程。
如何做到这一点?到目前为止,我的代码如下。
HTML
<div id="tabs">
<ul>
<li><a href="#fragment-1"><span>One</span></a></li>
<li><a href="#fragment-2"><span>Two</span></a></li>
<li><a href="#fragment-3"><span>Three</span></a></li>
</ul>
<div id="fragment-1">
<p>First tab is active by default:</p> <a href="nexttab">Next Tab</a>
</div>
<div id="fragment-2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh</div>
<div id="fragment-3">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh</div>
</div>
JS
$(document).ready(function () {
$("#tabs").tabs();
});
答案 0 :(得分:23)
您可以使用selected
option移动,如下所示:
$(".nexttab").click(function() {
var selected = $("#tabs").tabs("option", "selected");
$("#tabs").tabs("option", "selected", selected + 1);
});
只需将您的锚更改为匹配,就像这样:
<a class="nexttab" href="#">Next Tab</a>
或者,将每个“下一个标签”链接指向特定标签并使用select
method,如下所示:
<a class="nexttab" href="#fragment-2">Next Tab</a>
然后你可以使用更短的jQuery,并移动到你想要的任何选项卡:
$(".nexttab").click(function() {
$("#tabs").tabs("select", this.hash);
});
答案 1 :(得分:11)
我发现在UI 1.10.0中,此解决方案不再有效,因为“已选择”已弃用。以下内容适用于1.10及更早版本 -
$("#tabs").tabs();
$(".nexttab").click(function() {
var active = $( "#tabs" ).tabs( "option", "active" );
$( "#tabs" ).tabs( "option", "active", active + 1 );
});
答案 2 :(得分:0)
基于Nick Craver的回答,这里是我如何使用每个tab div底部HTML中的下一个按钮生成相同的功能:
<button class="btnNext" style="float:right">Next</button>
根据Nick的回答,我创建了两个函数:
function moveToNextTab()
{
var selected = $("#tabs").tabs("option", "selected");
$("#tabs").tabs("option", "selected", selected + 1);
}
function EnableButtons(className)
{
//Enable Next buttons
var aryButton = document.getElementsByTagName("button");
for(var i = 0; i < aryButton.length; i++)
{
var e = aryButton[i];
if(e.className == className)
{
e.onclick = function()
{
moveToNextTab();
return false;
};
}
}
}
由于每个按钮都属于“btnNext”类,因此在页面加载后,我会调用:
onload = EnableButtons("btnNext");
这使每个按钮能够移动到下一个标签。