Невозможно использовать метод выбора jquery ui tab

Вопрос:

У меня есть две вкладки с кнопкой отправки на каждой вкладке. Когда кнопка нажата, мне нужно перезагрузить содержимое этой конкретной вкладки, чтобы получить обновленные данные с сервера.

if (validStatus()) {
$.ajax({
//...
success: reloadTab
});
}

function reloadTab() {
var currentTab = $("#tabs").tabs("option", "active");
alert(currentTab);
$('#tabs').tabs('select', currentTab);
alert(currentTab);
}

Когда кнопка нажата, вкладка не обновляется. Я вижу первое предупреждение, но не второе.

HTML выглядит следующим образом:

Глава:

<link rel="stylesheet" href="@this.Url.Content("//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css")" />
<script>
$(function () {
$("#tabs").tabs();
});
</script>

Тело:

<div id="tabs">
<ul>
<li><a href="#Tab1" title="Tab1">The first tab</a></li>
<li><a href="#Tab2" title="Tab2">the second tab</a></li>
<li><a href="#Success" title="Success">Success</a></li>
</ul>

<div id="Success">
testing
</div>

<div id="Tab1">

<fieldset >
<legend>Overview</legend>
<input type="button" id="submit1" value="submit" />
<br />
</fieldset>

<fieldset style="width: 700px;">
<legend>Overview</legend>
<div>
<table >
//updated with ajax
</table>
</div>
</fieldset>

<script>
//reloadTab is in here
</script>
</div>

<div id="Tab2">

<fieldset style="float:left; width:300px;">
<input id="submit2" type="button" value="submit"/>
</fieldset>

<fieldset style="float:left;">
<legend>Overview</legend>
<table>
//updated with ajax
</table>
</fieldset>

<script>.....</script>
</div>

Лучший ответ:

Выключает tabs.('select',...) устарел, используя tabs.('option', 'active', index) исправил мою проблему. Решение найдено в этом комментарии: qaru.site/questions/328345/…

Ответ №1

Вы видите что-нибудь в консоли своего браузера? Какой браузер вы используете?
Попробуйте это, чтобы помочь вам с отладкой.

function reloadTab() {

console.log($('#tabs')); // if this is an empty object, the element doesn't exist when you call this function
console.log($('#tabs').tabs()); // if this doesn't return 'function', you haven't included a library properly, maybe jquery ui, or jquery, or you're using an old version or something
console.log(currentTab); // if this is undefined then something went wrong and no tab is active
var currentTab = $("#tabs").tabs("option", "active");
alert(currentTab);
$('#tabs').tabs('select', currentTab);
alert(currentTab);
}

Оцените статью
TechArks.Ru
Добавить комментарий