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

#javascript #vue.js #vuejs2 #dom-events #event-listener

#javascript #vue.js #vuejs2 #dom-события #прослушиватель событий

Вопрос:

Я создал прослушиватель окон, который работал должным образом. Через некоторое время, я не знаю, когда именно, прослушиватель окон перестал работать. Событие изменения размера также не работает. Я понятия не имею, что может быть причиной того, что он не работает.

   mounted () {
    window.addEventListener('scroll', this.test)
  },
  destroyed () {
    window.removeEventListener('scroll', this.test)
  },
  methods: {
    test () {
      console.log('test')
    }
  }
  

Редактировать

Я создал прослушиватель внутри основного компонента vue приложения, он все еще не работает.

 <template>
  <div id="application" class="" style="height: 200vh">
<!--    <router-view/>-->
  </div>
</template>

<script>
export default {
  name: 'App',
  mounted() {
    window.addEventListener('scroll', this.test);
  },
  methods: {
    test () {
      console.log('test')
    }
  },
  watch: {
    $route: {
      immediate: true,
      handler(to) {
        document.title = this.$t(to.meta.title) || 'Some Default Title'
      }
    },
  }
}
</script>
  

EDIT2
Когда компонент смонтирован, функция запускается дважды из прослушивателя событий, ни меньше, ни больше
экран

Комментарии:

1. After some time — значит, если вы загрузите свою страницу и подождете «некоторое время», это просто перестанет работать?

2. Эта часть кода кажется правильной. Я думаю, нам нужно больше деталей, чтобы диагностировать проблему

3. Под «Через некоторое время» я имел в виду, что несколько дней назад это работало, теперь это вообще не работает

4. Можете ли вы подтвердить, что компонент был смонтирован правильно и никакие другие ошибки JS не мешают? То, что вы нам здесь показываете, выглядит неплохо.

5. Ни одной ошибки, только несколько предупреждений (языковые переменные). Я удивлен, потому что это выглядит хорошо, и это работало, но сегодня я обнаружил, что это перестало работать, и я пытаюсь выяснить, почему.

Ответ №1:

РЕШЕНИЕ

HTML-тег был установлен на 100vh, поэтому окно на самом деле не двигалось. Дочерний элемент внутри был прокручиваемым.