raselgit
@raselgit
Веб-дизайнер

Как отследить нажатие на конкретный элемент?

Есть карта с точками локаций на ней. У всех точек один и тот же общий класс "mark". Пытаюсь сделать так, чтобы при нажатии на точку, к ней добавлялся класс "active" и вложенная вкладка появлялась. Вот код:
$(function(){
	$('.mark').click(function(){
		if($('.mark.active').length < 1){
			$('.mark').addClass('active');
			$('.tooltip').fadeIn();
		} else {
			$('.mark').removeClass('active');
			$('.tooltip').fadeOut();
		}
	});
});

Все вроде как работает, но только при нажатии на одну точку, активируются все точки. Как сделать так, чтобы она понимала, что я нажимаю именно на конкретный элемент?
  • Вопрос задан
  • 1326 просмотров
Решения вопроса 1
@Robert_blk
JS-программист
Пригласить эксперта
Ответы на вопрос 1
@kulaeff
Front-end developer
Можно использовать e.target или this:

$(function(){
  $('.mark').click(function(){
    var $mark = $(this); // или $(e.target)

    if(!$mark.hasClass('active')) {
      $mark.addClass('active');
      $('.tooltip').fadeIn();
    } else {
      $mark.removeClass('active');
      $('.tooltip').fadeOut();
    }
  });
});


Можно переделать с использованием .toggleClass()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект