Как отменить привязку события при переходе на другую страницу в NUXT js? - PullRequest
0 голосов
/ 23 января 2020

Я написал этот код на одной странице. Это работает, но как я могу отменить привязку этого события, когда я перехожу на другую страницу?

 private mounted () {
      if (process.browser) {
        const banner:any = document.querySelector('.banner img')
        document.addEventListener('scroll', () => {
          const offsetTop = window.scrollY
          const INTOR_HEIGHT = document.querySelector('.intro-text').offsetHeight
          if (offsetTop < INTOR_HEIGHT) {
            banner.style.top = offsetTop + 'px'
          }
        })
      }
    }

, когда я перехожу на другую страницу с этой страницы, эта ошибка выдается:

javascript Uncaught TypeError: Невозможно прочитать свойство 'offsetHeight' с нулевым значением в HTMLDocument.eval

1 Ответ

0 голосов
/ 23 января 2020

хаха, VUE. js Крюки жизненного цикла экземпляра также можно использовать в nuxt. js. так что, как это

private smoothSlier () {
      const banner:any = document.querySelector('.banner img')
      const offsetTop = window.scrollY
      const INTOR_HEIGHT:any = document.querySelector('.intro-text').offsetHeight
      if (offsetTop < INTOR_HEIGHT) {
        banner.style.top = offsetTop + 'px'
      }
    }
private mounted () {
      if (process.browser) {
        document.addEventListener('scroll', this.smoothSlier)
      }
    }

    private beforeDestroy () {
      document.removeEventListener('scroll', this.smoothSlier)
    }

, точка - это событие gind gind gall в смонтированных хуках и отмена привязки в beforeDestroy

...