При нажатии на "Итем2" и после этого при нажатии на "Итем1" - получается, что оба item'a имеют класс active
и они начинают неадекватно себя вести.
Как поправить item'ы, чтобы, при раскрытом "Итем2", я кликнул на "Итем1", "Итем2" свернулся и открылся "Итем2".
$('.ti-main-item').click(function() {
$(this).toggleClass('active');
if ($(".tog-inf-content").is(":visible")) {
$(".tog-inf-content").slideUp();
} else {
$(".active .tog-inf-content").slideToggle();
}
});
.ti-main-item .tog-inf-content {
display: none;
}
.ti-main-item .fa-long-arrow-down {
display: inline-block;
transition: transform 0.5s ease;
}
.ti-main-item.active .fa-long-arrow-down {
transform: rotate(-180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="ti-main-item">
<a href="#" class="tog-inf-nav">
<span class="ti-head">Итем1</span>
<span class="ti-arrow"><i class="fa fa-long-arrow-down"></i></span>
</a>
<div class="tog-inf-content">
<ul>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
</ul>
</div>
</div>
<div class="ti-main-item">
<a href="#" class="tog-inf-nav">
<span class="ti-head">Итем2</span>
<span class="ti-arrow"><i class="fa fa-long-arrow-down"></i></span>
</a>
<div class="tog-inf-content">
<ul>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
</ul>
</div>
</div>
$('.ti-main-item').click(function() {
// Toggle current menu
$(this).toggleClass('active');
$('.tog-inf-content', $(this)).slideToggle();
// Hide siblings
var siblings = $(this).siblings();
siblings.removeClass('active');
$('.tog-inf-content', siblings).slideUp();
});
$(".test")
вернет вам массив из всех элементов с данным селектором. И выполнит функцию на первом. Поэтому такой вариант не подходит. Нужно искать соответствующий элемент в контексте, вот так:
var $content = $(this).find(".tog-inf-content");
$('.ti-main-item').click(function() {
$(this).toggleClass('active');
var $content = $(this).find(".tog-inf-content");
if ($content.is(":visible")) {
$content.slideUp();
} else {
$content.slideToggle();
}
});
.ti-main-item .tog-inf-content {
display: none;
}
.ti-main-item .fa-long-arrow-down {
display: inline-block;
transition: transform 0.5s ease;
}
.ti-main-item.active .fa-long-arrow-down {
transform: rotate(-180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="ti-main-item">
<a href="#" class="tog-inf-nav">
<span class="ti-head">Итем1</span>
<span class="ti-arrow"><i class="fa fa-long-arrow-down"></i></span>
</a>
<div class="tog-inf-content">
<ul>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
</ul>
</div>
</div>
<div class="ti-main-item">
<a href="#" class="tog-inf-nav">
<span class="ti-head">Итем2</span>
<span class="ti-arrow"><i class="fa fa-long-arrow-down"></i></span>
</a>
<div class="tog-inf-content">
<ul>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
<li><a href="#">Описание</a></li>
</ul>
</div>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть множество полей ввода input text, которые я хочу заменять на textarea если человек входит с телефонаКак заменить я знаю, но как в замененную...
У меня есть расширение для хрома (уже опубликовано), но есть проблемаВ окне расширения (popup
Есть запрос, но в нем нету 1 поля с таблицы images "SELECT id, name, url, description, visible, price, amount FROM products WHERE id = $id"; Есть запрос с join где как раз объединил 2 таблицы,...