@Andrey_Smeet

Как показывать элемент только в данном блоке?

Есть такая конструкция:

<ul>
<li>Пункт <div class="hide">Это скрыто</div></li>
<li>Пункт <div class="hide">Это скрыто</div></li>
<li>Пункт <div class="hide">Это скрыто</div></li>
</ul>


$('ul li').click(function () {
		$('.hide').slideToggle(300);
		$(this).toggleClass("hide-open");
});


При нажатии на один пункт — открываются все. Как это исправить?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
$('ul').on("click", "li", function () {
    $(this).toggleClass("hide-open").children(".hide").slideToggle(300);
});

Ответ написан
shakiriker
@shakiriker
использовать $(this).children() открыть один элемент

$('ul li').click(function () {
    $(this).children().slideToggle(300);
    $(this).toggleClass("hide-open");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>Пункт <div class="hide">Это скрыто</div></li>
<li>Пункт <div class="hide">Это скрыто</div></li>
<li>Пункт <div class="hide">Это скрыто</div></li>
</ul>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 авг. 2019, в 10:39
500 руб./за проект
26 авг. 2019, в 10:37
1000 руб./в час
26 авг. 2019, в 10:32
10000 руб./за проект