Как реализовать появление блока при нажатии на ссылку, если таких блоков несколько?

Собственно, требуется показать div#list при клике на a#link. Но есть проблема.

На данный момент есть код
$(document).ready(function () {
	$('a#link').click(function (e) {
		$(this).toggleClass('active');
		$('#list').toggle();

		e.stopPropagation();
	});
});
А проблема в том, что абсолютно все a#link открывают только первый div#list (на странице их несколько).

Структура HTML примерно такова:
<div id="block"><a href="#" id="link" class="nactive">Ссылка</a></div>
<div id="list">
	<ul>
		<li>1</li>
		<li>2</li>
	</ul>
</div>
Собственно, как реализовать?
  • Вопрос задан
  • 10492 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ну, во первых, несколько элементов с одинаковыми id не есть гуд.
А если надо, чтобы каждый #link открывал свой #list, то таки вместо #link использовать .link и:
- поместить их с .list в один div и использовать .siblings();
- в .link указать атрибут data-id, содержащий уникальный #list1, #list2...
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Можно так
codepen.io/iiil/pen/KGerA

только измените мои селекторы a и div на .link и .list
Естественно, использования нескольких одинаковых id недопустимо. Используйте классы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shcherbanich
@shcherbanich
Программист
используйте eq() в такой случае
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы