JQuery вкладки - выберите, где создаются панели контента - PullRequest
1 голос
/ 04 октября 2011

Мне интересно, возможно ли динамически создавать панели вкладок в указанном месте?

На данный момент мои вкладки динамически создаются путем загрузки некоторого json. Моя структура div выглядит так:

<div id="tabs">
  <ul id="tablist"></ul>
</div>

Затем заполняет структуру динамически, как показано ниже ...

<div id="tabs">
  <ul id="tablist">
   <li><a href="#panel1">blah1</a></li>
   <li><a href="#panel2">blah2</a></li>
   <li><a href="#panel3">blah3</a></li>
  </ul>
  <div id="panel1">Some content...</div>
  <div id="panel2">Some content...</div>
  <div id="panel3">Some content...</div>
</div>

Я бы хотел попросить jQuery создать div панели в родительском div по моему выбору, например, '#panels':

<div id="tabs">
  <ul id="tablist"></ul>
</div>
<div id="panels"></div>

Возможно ли это? Спасибо.

К вашему сведению, я не использую общий вид вкладки пользовательского интерфейса, поэтому не привязан к какому-либо дизайну контейнера.

1 Ответ

2 голосов
/ 04 октября 2011

Мне интересно, возможно ли динамическое создание панелей вкладок в указанном месте?

Не легко (что я вижу).

Вы могли бы, если вы действительно хотите, получите аналогичное поведение, создав

  • , создав второй неупорядоченный список,
  • изменив стилизацию вашего текущего неупорядоченного списка, чтобы он не отображался,
  • связывание событий таким образом, что нажатие на любую вкладку в новом списке вызывает событие «щелчка» в «реальном» списке.

В качестве альтернативы, вы можете пойти «другим путем» и получить аналогичное поведение,

  • создание второго набора панелей,
  • изменение стиля «настоящих» панелей, чтобы они не отображались,
  • , перехватывая «tabsselect»(и аналогичные события) и запуск соответствующего изменения отображения в ваших новых панелях.

Как примечание, API вкладок пользовательского интерфейса jQuery в настоящее время подвергается редизайну .Доступна предварительная альфа веха , и они запрашивают комментарии.Конечно, не мешало бы запросить это как функцию и посмотреть, что они говорят.(Если ничто иное, у них не может быть лучшей идеи чем выше.)

...