#jquery #css #menu #tabs
#jquery #css — код #меню #вкладки
Вопрос:
Я использую следующее для переключения между 3 различными разделами..
Посмотрите рабочую демонстрацию.
Я отклеился, пытаясь найти способ применить другой цвет фона к текущей выбранной вкладке меню (включая вкладку по умолчанию, с которой загружается страница — «Еженедельно»)
Невозможно добавить класс к классу, не так ли?
Есть какие-нибудь идеи, как я мог бы сделать это с помощью jQuery?
Вот мой код…
jQuery ( jQuery ) :
jQuery('.viewSchedule').click(function () {
var index = $(this).index(),
newTarget = jQuery('.targetSched').eq(index);
console.log(index newTarget)
jQuery('.targetSched').not(newTarget).fadeOut('fast')
newTarget.delay('fast').fadeIn('fast')
return false;
})
CSS :
.viewSchedule {}
.viewBTN {display:block;width:auto;height:auto;padding:5px 10px 5px 10px;background:#ccc;color:#242424;cursor:pointer;border-radius:5px;float:left;margin-left:10px;font-family:dina,Arial, Helvetica, sans-serif;font-size:16px;text-align:center;}
.viewBTN:hover {background:#FFF;color:#333;}
.targetSched {display: none}
.targetSched.first {display: block}
HTML :
<a class="viewSchedule" target="1"><span class="viewBTN">WEEKLY</span></a>
<a class="viewSchedule" target="2"><span class="viewBTN">DAILY</span></a>
<a class="viewSchedule" target="3"><span class="viewBTN">LIST</span></a>
<br /><br /><br /><br />
<div id="sh-week" class="targetSched first">WEEKLY CONTENT</div>
<div id="sh-daily" class="targetSched">DAILY CONTENT</div>
<div id="sh-list" class="targetSched">LIST CONTENT</div>
Ответ №1:
jQuery:
jQuery('.viewSchedule').click(function () {
$('.viewBTN').removeClass('selected');
$(this).find('.viewBTN').addClass('selected');
var index = $(this).index(),
newTarget = jQuery('.targetSched').eq(index);
jQuery('.targetSched').not(newTarget).fadeOut('fast')
newTarget.delay('fast').fadeIn('fast')
return false;
})
CSS:
.selected {background: blue}
Комментарии:
1. речь идет не о том, кто прав или неправ, а просто о том, что является решением. 1 за вашу попытку, спасибо
Ответ №2:
Вы можете добавить несколько классов к одному элементу .
JavaScript
jQuery('.viewSchedule').click(function () {
var index = $(this).index(),
newTarget = jQuery('.targetSched').eq(index);
$(".viewSchedule.active").removeClass("active");
$(this).addClass("active");
console.log(index newTarget)
jQuery('.targetSched').not(newTarget).fadeOut('fast')
newTarget.delay('fast').fadeIn('fast')
return false;
})
CSS
.viewSchedule {}
.viewBTN {display:block;width:auto;height:auto;padding:5px 10px 5px 10px;background:#ccc;color:#242424;cursor:pointer;border-radius:5px;float:left;margin-left:10px;font-family:dina,Arial, Helvetica, sans-serif;font-size:16px;text-align:center;}
.viewBTN:hover {background:#FFF;color:#333;}
.viewSchedule.active .viewBTN{
background-color:red;
color:white;
}
.targetSched {display: none}
.targetSched.first {display: block}
Комментарии:
1. Это будет неверно.
$(this).addClass("active");
добавит класс к ссылке, а не к кнопке. Смотрите мой ответ.2. цель состоит в том, чтобы выделить активную кнопку
3. Точно, и чтобы переопределить стиль кнопки, который вам нужно установить, добавьте класс в
.viewBTN
диапазон.4. О, хорошо. Моя ошибка. Что ж, спрашивающий может выбрать любой ответ, который подходит ему лучше всего. Хорошего дня.
5. мы оба правы, в программировании есть много способов сделать одно и то же