Создание кнопки "Далее" для переключения через вкладки jQuery
Как создать кнопку, которая будет переходить на следующую вкладку 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();
});
Ответы
Ответ 1
Вы можете использовать параметр selected
для перемещения, например:
$(".nexttab").click(function() {
var selected = $("#tabs").tabs("option", "selected");
$("#tabs").tabs("option", "selected", selected + 1);
});
Просто измените якорь на соответствие, например:
<a class="nexttab" href="#">Next Tab</a>
Здесь вы можете просмотреть демо
В качестве альтернативы сделайте ссылку "Следующая вкладка" на конкретную вкладку и используйте метод select
:
<a class="nexttab" href="#fragment-2">Next Tab</a>
Затем вы можете использовать бит более короткий jQuery и переместиться на любую вкладку, которую вы хотите:
$(".nexttab").click(function() {
$("#tabs").tabs("select", this.hash);
});
Вот демонстрация этого подхода
Ответ 2
Я обнаружил, что с UI 1.10.0 это решение больше не работает, поскольку "выбран" был устаревшим. Следующее будет работать как в 1.10, так и в более ранних версиях -
$("#tabs").tabs();
$(".nexttab").click(function() {
var active = $( "#tabs" ).tabs( "option", "active" );
$( "#tabs" ).tabs( "option", "active", active + 1 );
});
Ответ 3
На основании ответа Ника Кравера, здесь, как я создал ту же функциональность, используя следующие кнопки, которые выглядят так в HTML внизу в каждой вкладке div:
<button class="btnNext" style="float:right">Next</button>
На основании ответа Ник я создал две функции:
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");
и это позволяет каждой кнопке перемещаться на следующую вкладку.