Показать сообщение отдельно
  #1 (permalink)  
Старый 05.07.2018, 12:54
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Предотвращение ошибки
Ребята, подскажите, как решить следующую задачу:
У меня следующий функционал:
class doctorsNavModule {

  constructor () {}

  handler () {

    const
      _this = this;

    const
      trigger = $('.submenu__link-nav-trigger');

    trigger.on('click', function (event) {
      event.preventDefault();

      let
        $this = $(this),
        targer = $this.data('name'),
        reqSection = {};

      setTimeout(function() {
        $('[data-target]').each(function () {
          let
            $this = $(this),
            trigger = $this.data('target');

          if (targer == trigger) {
            reqSection = $this;
          }
        });

        let reqScroll = reqSection.offset().top - 300; // Uncaught TypeError: reqSection.offset is not a function

        console.log(reqScroll);

        $('html, body').animate({
          scrollTop: reqScroll
        });

      }, 500);

    });

  }

  init () {
    this.handler();
  }

}

let doctorsNavInit = new doctorsNavModule();

doctorsNavInit.init();


И, при определенных действиях, следующий код:
let reqScroll = reqSection.offset().top - 300;

выдает ошибку:
Uncaught TypeError: reqSection.offset is not a function

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

Последний раз редактировалось s24344, 05.07.2018 в 12:57.
Ответить с цитированием