Как правильно получить data-атрибут родительского контейнера нажатой кнопки?

Есть контейнер .svg-map, в котором находится svg-документ с местами концертного зала. Сами места в документе рисуются через circle.

Таких контейнеров .svg-map у меня 4 штуки, они все одинаковые, меняется лишь svg-документ, который в этом контейнере находится, следовательно и обрабатываться они должны по-разному.
Сейчас клик по месту в зале я получаю так, присваиваю ему класс checked:
$('.svg-map > svg circle').on('click',function(){
        $(this).toggleClass('checked');
      })

Этот код для всех 4х контейнеров с картами.

Вопрос такой: как грамотно получить data-атрибут у контейнера .svg-map, в котором был нажат кружок, то есть чтобы при клике в любом из 4х контейнеров мне выводился data-category непосредственно того контейнера, в котором я работаю?

Пример кода:
<div class="svg-map" data-category="vip">
									<svg>
										<circle></circle>
										<circle></circle>
										<circle></circle>
									</svg>
								</div>
								<div class="svg-map" data-category="balcony">
									<svg>
										<circle></circle>
										<circle></circle>
										<circle></circle>
									</svg>
								</div>
  • Вопрос задан
  • 396 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
$(this).closest('[data-category]').attr('data-category');
Ответ написан
Если вложенность неизменна:

$(this).parent().parent().attr('data-category');

Еще можете указывать data-id родительскому блоку и data-parent-id дочерним
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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