Это лучший способ создать вкладку «Все» с помощью вкладок jQuery? - PullRequest
0 голосов
/ 13 февраля 2009

Я создал интерфейс с использованием вкладок пользовательского интерфейса jQuery, однако одним из моих требований было наличие опции «Все», которая бы отображала содержимое всех страниц в группе вкладок одновременно на странице.

Мои вкладки генерируются динамически из PHP, и я присваиваю каждой кнопке вкладки идентификатор, чтобы результат выглядел следующим образом:

<li ><a id='tabProjectBrief' href="#section1">Project Brief</a></li>
<li ><a id='tabScorecard' href="#extra1">Scorecard</a></li>
<li ><a id='tabContributions' href="#section2">Contributions</a></li>
<li ><a id='tabOther' href="#section6">Other</a></li>
<li ><a id='tabAll' href="#all">All</a></li>

Тогда в моем JavaScript у меня есть следующее:

$(document).ready(function() {
  $('#tabAll').click(function(){

    setTimeout("$('div.tabSection').removeClass('ui-tabs-hide')", 50);
  });
});

Я использую setTimeout (), потому что при выборе вкладки пользовательский интерфейс jQuery устанавливает класс ui-tab-hide на ранее выбранной вкладке, что, как я могу сказать, происходит после события click на новой вкладке. Таким образом, вкладка, которая только что получила класс ui-tabs-hide, также будет удалена.

Кажется, он работает отлично, но для меня это немного хакерство, так есть ли лучший способ сделать это? Спасибо.

1 Ответ

0 голосов
/ 13 февраля 2009

Ваше решение мне подходит. $("div.tab-section").show(); чище, но сохранит имена классов нетронутыми, что нежелательно, если пользователь выберет другую вкладку после нажатия вкладки «Все».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...