Не удаляются слушатели событий в цикле

В классе Quiz у меня есть функция createFieldsRadio, которая создаёт DOM элементы.
Я там навешиваю события клика, наведения/уведения мыши.
И при первом клике

if (clickCounter === 1) {
  fieldRadio.classList.add('active');
  arrFields.forEach(item => {
    item.removeEventListener('mouseover', mouseOverFieldRadio);
    item.removeEventListener('mouseout', mouseOutFieldRadio);
  });
}

То я пытаюсь пройти по массиву DOM элементов, которые есть на странице и удалить у них слушатели событий.
Но они почему-то не удаляются

class Quiz {
  constructor(options) {
    this.formDOM = document.querySelector(`#${options.nameForm}`);
    const radioS = Array.from(this.formDOM.querySelectorAll(`[name=${options.nameInputRadio}]`));
    this.radioS = this.cloneRadios(radioS);
    this.deleteRadios(radioS);
    this.fieldsRadio = this.createFieldsRadio(this.formDOM, this.radioS);
  }

  cloneRadios(radiosDom) {
    return radiosDom.map(item => {
      const newItem = item.cloneNode(true);
      return item.cloneNode(true);
    })
  }

  deleteRadios(radiosDom) {
    for (let i = radiosDom.length - 1; i > -1; i--) {
      radiosDom[i].remove();
      radiosDom.splice(i, 1);
    }
  }

  createFieldsRadio(formDOM, radiosDom) {
    const arrFields = [];
    let clickCounter = 0;

    for (let i = 0; i < radiosDom.length; i++) {
      const fieldRadio = document.createElement('div');

      const mouseOverFieldRadio = (e) => {
        fieldRadio.classList.add('hover');
      }
  
      const mouseOutFieldRadio = (e) => {
        fieldRadio.classList.remove('hover');
      }

      fieldRadio.classList.add('fieldRadio');
      fieldRadio.innerHTML = `
        <div class="fieldRadio__text">${radiosDom[i].value}</div>
        <div class="fieldRadio__voting"></div>
      `;
      fieldRadio.addEventListener('click', (e) => {
        clickCounter++;
        if (clickCounter === 1) {
          fieldRadio.classList.add('active');
          arrFields.forEach(item => {
            item.removeEventListener('mouseover', mouseOverFieldRadio);
            item.removeEventListener('mouseout', mouseOutFieldRadio);
          });
        }
      });

      fieldRadio.addEventListener('mouseover', mouseOverFieldRadio);
      fieldRadio.addEventListener('mouseout', mouseOutFieldRadio);
      arrFields.push(fieldRadio);
      formDOM.append(fieldRadio);
    }
    return arrFields.slice();
  }

  getStatistics() { // тут получение данных из бд
    return {
      "Интроверт": 3,
      "Экстраверт": 4,
      "Не знаю": 2
    };
  }
}

const newQuiz = new Quiz({
  nameForm: 'whoAreYouForm',
  nameInputRadio: 'whoAreYou'
});
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');

*, *::before, *::after {
  box-sizing: border-box;
  /* margin: 0;
  padding: 0; */
}

body {
  font-family: 'Roboto', sans-serif;
  margin: 0;
}

img {
  display: block;
  max-width: 100%;
}

h2 {
  font-weight: normal;
}

p {
  line-height: 1.6;
}

main {
  padding: 40px 0;
}

.container {
  display: block;
  width: 100%;
  padding: 0 10px;
  max-width: 1000px;
  margin: 0 auto;
}

.code {
  color: #242729;
  background-color: #e4e6e8;
  padding: 2px 4px;
  border-radius: 3px;
}

.form {
  padding: 15px;
  box-shadow: inset 0 0 0 1px #dce1e6;
  border-radius: 8px;
  max-width: 300px;
}

.form > * + * {
  margin-top: 10px;
}

.form__header {
  line-height: normal;
  margin: 0 0 15px 0;
}

.fieldRadio {
  background-color: #e5ebf1;
  padding: 6px 75px 8px 10px;
  font-size: 13px;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  transition: background-color 0.15s linear;
}

.fieldRadio.active {
  background-color: #c5d0db !important;
}

.fieldRadio__text {

}

.fieldRadio__voting {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  /* background-color: red; */
}

.fieldRadio.hover {
  background-color: #d3d9de;
}
<form class="form" id="whoAreYouForm">
  <p class="form__header">Кто ты?</p>
  <input name="whoAreYou" type="radio" value="Интроверт">
  <input name="whoAreYou" type="radio" value="Экстраверт">
  <input name="whoAreYou" type="radio" value="Не знаю">
</form>


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

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

Они не удаляются, потому что переменные mouseOverFieldRadio/mouseOutFieldRadio создаются на каждой итерации цикла.

→ Ссылка