Переключение классов
здравствуйте! Проблема вот в чем...имеется страница со следующей структурой
<div class="subs-bg blue"><div class="slider content">
<div class="heading row">
<a class="asub" data-subs="blue">Ежемесячный</a>
<a class="asub" data-subs="green">Годовой</a>
<a class="asub active" data-subs="red">3D Сцены</a>
</div>
<div class="items row">
<div class="item month col-md-6 col-xs-12">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">100</p>
</div>
<div class="desc">
3 моделей в месяц <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
<div class="item year col-md-6 col-xs-12">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">1200</p>
</div>
<div class="desc">
40 моделей в год <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
<div class="item sceny col-md-6 col-xs-12">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">1200</p>
</div>
<div class="desc">
40 моделей в год <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
</div>
</div></div>
содержимое переключалось так:
$(".asub").on("click", function(e) {
$(".asub").removeClass('active');
$(this).addClass('active');
if( $(this).attr('data-subs') == 'green' ) {
x = 'blue';
y = 'green';
$('.month').removeClass('on');
$('.year').addClass('on');
} else {
x = 'green';
y = 'blue';
$('.year').removeClass('on');
$('.month').addClass('on');
}
$(".subs-bg").removeClass(x);
$(".subs-bg").addClass(y);
});
Нужно добавить еще один раздел "red" c классом содержимого sceny Добавила вот так
$(".asub").on("click", function(e) {
$(".asub").removeClass('active');
$(this).addClass('active');
if( $(this).attr('data-subs') == 'green' ) {
x = 'blue';
y = 'green';
z = 'red';
$('.month').removeClass('on');
$('.sceny').removeClass('on');
$('.year').addClass('on');
}
if( $(this).attr('data-subs') == 'blue' ) {
x = 'blue';
y = 'green';
z = 'red';
$('.month').addClass('on');
$('.sceny').removeClass('on');
$('.year').removeClass('on');
}
if( $(this).attr('data-subs') == 'red' ) {
x = 'blue';
y = 'green';
z = 'red';
$('.month').removeClass('on');
$('.sceny').addClass('on');
$('.year').removeClass('on');
}
$(".subs-bg").removeClass(x);
$(".subs-bg").addClass(y);
});
Вроде бы работает, но при клике на "red" к subs-bg встает класс green, если правильно понимаю из-за последних двух строк. а как исправить их - не понимаю. Заранее спасибо за помощь |
Ingred,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.red {
background-color: #FF0000;
}
.blue{
background-color: #0000FF;
}
.green{
background-color: #008000;
}
.active {
color: #FFFFFF;
}
.on {
border: 1px solid #FFFF00;
color: #FFFFFF;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var asub = $(".asub"),
items = $(".item"),
bg = $(".subs-bg");
var nameCls = $.map(asub, function(el, i) {
el = $(el);
var cls = el.data("subs");
el.on("click", function(e) {
asub.removeClass("active");
el.addClass("active");
items.removeClass("on").eq(i).addClass("on");
bg.removeClass(nameCls).addClass(cls)
});
return cls
});
nameCls = nameCls.join(" ")
});
</script>
</head>
<body>
<div class="subs-bg red"><div class="slider content">
<div class="heading row">
<a class="asub" data-subs="blue">Ежемесячный</a>
<a class="asub" data-subs="green">Годовой</a>
<a class="asub active" data-subs="red">3D Сцены</a>
</div>
<div class="items row">
<div class="item month col-md-6 col-xs-12">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">100</p>
</div>
<div class="desc">
3 моделей в месяц <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
<div class="item year col-md-6 col-xs-12">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">1200</p>
</div>
<div class="desc">
40 моделей в год <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
<div class="item sceny col-md-6 col-xs-12 on">
<span class="header">Базовый</span>
<div class="text-center">
</div>
<div class="price">
<p class="cur cur-rub">1200</p>
</div>
<div class="desc">
40 моделей в год <a href="/?route=account/signup"><br>+ Начать</a>
</div>
</div>
</div>
</div></div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 12:50. |