Я пытаюсь создать элемент вкладки jquery, изменив (заполняя) innerhtml тега div правильным html для вкладки jQuery.
Когда страница html загружается в первый раз, она правильно отображает вкладки. (Obvoiusly работает jquery css и html)
Когда я нажимаю кнопку, чтобы программно изменить innerhtml тега, чтобы загрузить новый контент (вкладки), таблица стилей, похоже, не обновляется, и я остаюсь с отображаемыми новыми маркерами href, а не вкладками.
Мой вопрос: я собираюсь сделать правильный путь (динамически загружать вкладки) или есть лучший способ сделать это? Должен ли я просто обновить встроенные таблицы стилей каким-то образом, чтобы исправить отображение?
Трудно понять, что вы пытаетесь сделать без примера, но Java_User правильно использует обновление, предполагая, что вы хотите добавить новую вкладку.
Если HTML для вкладок выглядит следующим образом:
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a> </li>
<li><a href="#tabs-2">Tab 2</a> </li>
</ul>
<div id="tabs-1">
<p>Tab 1</p>
</div>
<div id="tabs-2">
<p>Tab 2</p>
</div>
</div>
Новая вкладка может быть добавлена с помощью следующего кода:
// number of existing tabs
var num_tabs = $("#tabs ul li").length + 1;
// add new tab
$("#tabs ul").append("<li><a href='#tab" + num_tabs + "'>#" + num_tabs + "</a></li>");
// add tab content
$("#tabs").append("<div id='tab" + num_tabs + "'>#" + num_tabs + "</div>");
// refresh the content so they appear as 'tabs'
$("#tabs").tabs("refresh");
РЕДАКТИРОВАТЬ: Игнорируйте приведенное выше. Единственный способ заставить его работать - это уничтожить и воссоздать вкладки после ввода нового HTML. например:
// inject the HTML for the new tabs
$("#tabs").html("<ul><li><a href='#tabs-1'>New Tab 1</a></li><li><a href='#tabs-2'>New Tab 2</a></li></ul><div id='tabs-1'>New Tab 1</div><div id='tabs-2'>New Tab 2</div>");
// Destroy and recreate the tabs
$('#tabs').tabs('destroy').tabs();