Я создал интерфейс с использованием вкладок пользовательского интерфейса 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, также будет удалена.
Кажется, он работает отлично, но для меня это немного хакерство, так есть ли лучший способ сделать это?
Спасибо.