Как сделать так чтобы при клике на фоновую картинку не срабатывал скрипт, и значение data оставалось текущим на чистом js?

Задача была в следующем: при клике на этаж квартиры, элементу добавляется класс, а у счётчика этажей меняется число этажа в зависимости от выбраного. Реализовал через data атрибут, но есть проблема. Сама картинка, по которой производится клик - svg формата, и состоит из фонового изображения и этажей. У этажей есть data атрибут и при клике на них все нормально, но при клике на фоновую картинку, значение счётчика просто пропадает.

Как сделать так, чтобы при клике на фоновую картинку значение счётчика не пропадало и было равно выбраному этажу (если выбран 2 этаж - то значение 2 и т.д). Вот ссылка на проект: https://plupiks.github.io/melody-landing/

const houseFloor = document.querySelector('.house-img');
const floorCountNumb = document.querySelector('.hero--value');

// делаю выбранный этаж активным
houseFloor.addEventListener('click', function (e) {
  var floors = document.querySelectorAll(".house-floor");
  var floorActive = e.target;
  Array.from(floors).forEach(i => {
    i.classList.remove("house-img--active");
  })
  floorActive.classList.add("house-img--active");

// присваивание номера этажа
  var floorCount = e.target.dataset.floor;
  floorCountNumb.textContent = floorCount;
  console.log(floorCount);
})

Ответы (1 шт):

Автор решения: Rudi

Добавить проверку. Когда кликаешь не на этаже e.target.dataset.floor undefined

houseFloor.addEventListener('click', function (e) {
  var floors = document.querySelectorAll(".house-floor");
  var floorActive = e.target;
  Array.from(floors).forEach(i => {
    i.classList.remove("house-img--active");
  })
  floorActive.classList.add("house-img--active");
  var floorCount = e.target.dataset.floor;
  
  if(floorCount) floorCountNumb.textContent = floorCount;
  console.log(floorCount);
})

→ Ссылка