Помогите убрать обработку события при дальнейшем наведении

Есть табличка, которая меняется при наведении. но проблема в том, что если ты на нее наводишь и задеваешь еще какой-то блок внутри, она продолжает отрабатывать. Подскажите, что и где нужно добавить/изменить, чтоб отрабатывал правильно: При наведении на карточку(она делала ротэйт один раз), а когда убираешь курсор с нее, она возвращается в предыдущие положение. код: https://codepen.io/okylist/pen/abYWKPp

    const wr = document.querySelectorAll('.wrapper')

wr.forEach((items) => {
    items.addEventListener('mouseover', (e) => {
                    console.log(e.target);
                    setTimeout(() => {
            items.children[0].style.display = "none"
            items.children[1].style.display = "none"
            items.children[2].style.display = "block"
        }, 300)
    })
    items.addEventListener('mouseout', (e) => {
        setTimeout(() => {
          console.log(e.target);
            items.children[0].style.display = "block"
            items.children[1].style.display = "block"
            items.children[2].style.display = "none"
        }, 300)
    })
})

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

Автор решения: Laukhin Andrey

Чтобы ваш подход заработал, нужно существенно менять структуру, четко разделить лицевую и оборотную сторону карточки, оборачивать еще в один блок, размеры которого должны быть неизменны, использовать mouseenter/mouseleave и т.д.

Но лучше углубиться в возможности CSS, которые позволяют решить эту задачу без JS:

.card-wrapper {
  display: flex;
  width: 300px;
  height: 180px;
  perspective: 1200px;
}

.card {
  flex-grow: 1;
  transition: transform 0.7s;
  transform-style: preserve-3d;
  border: 1px solid #000;
  position: relative;
}

.card-wrapper:hover .card {
  transform: rotateY(180deg);
}

.card-front, .card-back {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.card-front {
  background-color: white;
}

.card-back {
  background-color: #2980b9;
  transform: rotateY(180deg);
}
<div class="card-wrapper">
  <div class="card">
    <div class="card-front">FRONT</div>
    <div class="card-back">BACK</div>
  </div>
</div>

Ключевыми свойствами здесь являются transform-style и backface-visibility.

→ Ссылка