530 сообщений
#15 лет назад
Есть обычные табы (список вкладок и дивы которые идут в show/hide) написано все это на jquery$(function () {
var tabs = ;
var tabContainers = ;
$('ul.tabs a').each(function () {
if (this.pathname == window.location.pathname) {
tabs.push(this);
tabContainers.push($(this.hash).get(0));
}
});
$(tabContainers).hide().filter(':first').show();
$(tabs).click(function () {
$(tabContainers).hide();
$(this.hash).show();
return false;
});
});
Вроде бы все отлично но нужно сделать так что бы on document ready открывалась не какая то таба а та, у которой есть class current. Как ?
Псы. посылать меня читать о filter не надо, читал, все равно не вышло выбрать нужный мне таб
27 сообщений
#15 лет назад
$(function () {var tabs = ;
var tabContainers = ;
$('ul.tabs a'

if (this.pathname == window.location.pathname) {
tabs.push(this);
tabContainers.push($(this.hash).get(0));
}
});
$(tabContainers).hide().filter('.current'

$(tabs).click(function () {
$(tabContainers).hide();
$(this.hash).show();
return false;
});
});
530 сообщений
#15 лет назад
Хх, было бы все так просто, дело в том что класс привязывается не к содержимому таба а к ссылке таба<div id="topmenu">
<ul id="toptabs" class="tabs">
<li><a href="#ttab1" class="current">Услуги</a></li>
<li><a href="#ttab2">Портфолио</a></li>
</ul>
<div id="topsubmenuleft"><div id="topsubmenuright">
<div id="topsubmenu">
<ul id="ttab1">
<li><a href="">Дизайн сайта</a></li>
<li><a href="">Верстка</a></li>
<li><a href="">Продвижение</a></li>
<li><a href="">Сайт под ключ</a></li>
<li><a href="">Поднятие тИЦ</a></li>
</ul>
<ul id="ttab2">
<li><a href="">Дизайн сайта 2</a></li>
<li><a href="">Верстка 2</a></li>
<li><a href="">Продвижение 2</a></li>
<li><a href="">Сайт под ключ 2</a></li>
<li><a href="">Поднятие тИЦ 2</a></li>
</ul>
</div>
</div>
</div>
530 сообщений
#15 лет назад
Немного подумав добавил проверку, и вот что вышло
$(function () {
var tabs = ;
var tabContainers = ;
$('ul.tabs a').each(function () {
if (this.pathname == window.location.pathname) {
tabs.push(this);
tabContainers.push($(this.hash).get(0));
}
if (this.className !== 'current') {
$(this.hash).hide();
}
else {
$(this.hash).show();
}
});
$(tabs).click(function () {
$(tabContainers).hide();
$(this.hash).show();
return false;
});
});
Осталась всего одна проблема, если добавить эффект анимации то блок будет скрыватся и появлятся одновременно, как поправить?