JQuery UI Tabs - заменить вкладку и содержимое - PullRequest
1 голос
/ 04 апреля 2010

Каков наилучший способ заменить выбранную в данный момент вкладку и ее содержимое? Содержимое динамически генерируется с помощью jquery, а не загружается через URL.

Мне нужно сделать это вне любого кода вкладки или обработчика события вкладки (показать, добавить и т. Д.). В другом месте на странице есть ссылка, которая должна делать следующее при нажатии:

  • Изменить заголовок вкладки
  • Изменить имя класса вкладки
  • Очистить все элементы tabcontent div
  • Изменить имя класса div-объекта tabcontent
  • Создание нового контента внутри tabcontent div

Обратите внимание, что единственная ссылка, которую имеет обработчик click () этой ссылки, - это объект вкладок JQuery ($ Tabs). Я могу получить выбранную вкладку с помощью $Tabs.tabs('option','selected'). Но как я могу получить ссылку на вкладку и панель выбранной вкладки? Внутри обработчика вкладок jquery (показать, добавить и т. Д.) У меня есть доступ к ui.tab и ui.panel, но есть ли способ получить их из опции вкладок?

Было бы лучше просто удалить текущую выбранную вкладку, а затем добавить новую вкладку в том же месте индекса? Тогда мне нужно было бы поместить код для генерации содержимого вкладки в обработчик add ().

РЕДАКТИРОВАТЬ: Я удивлен, никто не имеет никаких предложений. У меня все работает, удаляя выбранную вкладку, а затем добавляя новую вкладку в том же месте. В быстром браузере это достойное решение, но в браузере с медленным javascript вы можете увидеть, как вкладка исчезает, а затем появляется новая. Это работает, но на самом деле это не оптимально.

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

FWIW - у меня возникла та же проблема, когда я пытался ссылаться на динамически созданный контейнер div с содержимым вкладок для изменения содержимого. Я смог сослаться на содержимое вкладок контейнера div с помощью:

<p>
$("#ui-tabs-1").html
</p>

где 1 - индекс вкладки ajax, контейнер которой мне нужно было изменить. Надеюсь, это вам немного поможет.

0 голосов
/ 24 января 2012

Не следует забывать, что панель вкладок (=content) index НЕ обнуляется, тогда как индекс выбранной вкладки равен!

так что '1' в '#ui-tabs-1' это значение 'ui.index' (= selected tab) + 1!

...