@kimqarkimqarkimqar

Инициализируется js файл заново при клике и вызове функции openModal()?

Есть js файл со скриптами:
var moduleApp = {
    'init': function () {
        this.initGlobals();
        this.initGlobalsEvents();
        this.startupMessage();
        this.executeModules();
        this.confirmLocationPopup();
        this.loaderImages();
        this.pageLoader();
        this.pagePreLoader();
        this.wowInit();
        this.scrollMagicInit();
        this.buttonFill();
        this.openJobModal();
        // this.stickyHeaderInit();
    },
    'filter': function () {
        var selects = $('.page-catalog__filter__item select');
        selects.select2({
            minimumResultsForSearch: Infinity,
        });

    },
    'stickyHeaderInit': function () {
        $(document).ready(function () {
            new Sticky('.is-header');
        });
    }, ....

На странице есть кнопка, которая вызывает функцию this.openJobModal();
Самая функция:
'openJobModal': function () {
      var btn = $('.js-open-modal');
      btn.fancybox({
          wrapCSS: 'fb-job-modal',
          padding: 0,
          margin: 0,
          autoScale: false,
          fitToView: false,
          openSpeed: 300,
          closeSpeed: 300,
          nextSpeed: 300,
          prevSpeed: 300,
          toolbar: false,
          afterShow: function () {
              conf.nodeBody.addClass('body-state-fancy');
              // this modal parent
              var $thisFancy = $('.fancybox-inner');
              moduleApp.executeModules($thisFancy);
              $('.js-acc-open').click(function (e) {
                  e.preventDefault();
                  var $this = $(this);
                  var $currentAccItems = $this.closest('.is-accordion').find('.ia-item');
                  var $currentAccWrapper = $this.closest('.is-accordion').find('.ia-content-wrapper');

                  var $currentItem = $this.closest('.ia-item');
                  var $currentWrapper = $currentItem.find('.ia-content-wrapper');
                  var cH = $currentItem.find('.ia-content').height();

                  if ($currentItem.hasClass('active')) {
                      if (!$this.hasClass('state-unclose')) {
                          $currentItem.removeClass('active');
                          $currentWrapper.removeAttr('style');
                      }
                  } else {
                      $currentAccItems.removeClass('active');
                      $currentItem.addClass('active');
                      $currentAccWrapper.removeAttr('style');
                      $currentWrapper.attr('style', 'height:' + cH + 'px;');
                  }
              });
          },
          beforeClose: function () {
              conf.nodeBody.removeClass('body-state-fancy');
          },
          afterClose: function () {
              conf.fancyStatus = false;
          }
      });

Так вот, проблема в том, что при клике на кнопку, заново инициализируется полностью js файл и все функции внутри moduleApp этого файла срабатывают заново, как это пофиксить, чтобы при клике вызывалась функция только this.openJobModal(); ?

Если нужно, могу приложить весь файл js
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы