Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2017, 14:22
Новичок на форуме
Отправить личное сообщение для mrG0bliN Посмотреть профиль Найти все сообщения от mrG0bliN
 
Регистрация: 23.06.2017
Сообщений: 3

Functions declared within loops referencing an outer scoped variable may lead to conf
function jqFormSteps() {
    var n = 0;
    for (n = 0; n < 5; n++) {

      var formStep = $('#form_step_one> fieldset');
      var stepNext = $('fieldset[data-step="' + n + '"]').next();
      var stepPrev = $('fieldset[data-step="' + n + '"]').prev();

  тут ошибка->>    var stepFormAddClass = function(parm1, parm2) {
        $(parm1).on('click', function(event) {
          event.preventDefault();
          formStep.removeClass('selector');
          parm2.addClass('selector');
        });
      };
      stepFormAddClass('#next' + n + '', stepNext);
      stepFormAddClass('#prev' + n + '', stepPrev);
    }
  }
-------

ошибка: Functions declared within loops referencing an outer scoped variable may lead to confusing semantic.

как избавится от ошибки? понимаю что функция вошла в цикл и это не самый лучший способ что бы листать блоки туда сюда
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2017, 14:55
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

функцию вынеси за цикл фор, зачем ее в цикл засунул?
Ответить с цитированием
  #3 (permalink)  
Старый 23.06.2017, 15:29
Новичок на форуме
Отправить личное сообщение для mrG0bliN Посмотреть профиль Найти все сообщения от mrG0bliN
 
Регистрация: 23.06.2017
Сообщений: 3

function jqFormSteps() {
      var n = 0;
      var formStep = $('#form_step_one> fieldset');
      var stepNext = $('fieldset[data-step="' + n + '"]').next();
      var stepPrev = $('fieldset[data-step="' + n + '"]').prev();

      var stepFormAddClass = function(parm1, parm2) {
        $(parm1).on('click', function(event) {
         for (n = 0;n < 5;n++) {
          event.preventDefault();
          formStep.removeClass('selector');
          parm2.addClass('selector');
        }
      });
      stepFormAddClass('#next' + n + '', stepNext);
      stepFormAddClass('#prev' + n + '', stepPrev);
    };
  }


ошибка пропадает. но зато перестают перелистыватся туда сюда дивы

и моя форма ломается
Ответить с цитированием
  #4 (permalink)  
Старый 23.06.2017, 16:16
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

function jqFormSteps() {
      var n = 0;
      var formStep = $('#form_step_one> fieldset');
      var stepNext = $('fieldset[data-step="' + n + '"]').next();
      var stepPrev = $('fieldset[data-step="' + n + '"]').prev();

      var stepFormAddClass = function(parm1, parm2) {
        $(parm1).on('click', function(event) {
          event.preventDefault();
          formStep.removeClass('selector');
          parm2.addClass('selector');
        });
      };
       for (n = 0;n < 5;n++) {
      stepFormAddClass('#next' + n + '', stepNext);
      stepFormAddClass('#prev' + n + '', stepPrev);
    }
  }

попробуйте вот так, если не получится, сделайте тестовый пример здесь.
Ответить с цитированием
  #5 (permalink)  
Старый 23.06.2017, 17:40
Новичок на форуме
Отправить личное сообщение для mrG0bliN Посмотреть профиль Найти все сообщения от mrG0bliN
 
Регистрация: 23.06.2017
Сообщений: 3

function jqFormSteps() {
    var moveStep = {
      nextStep: function() {  $('[data-step]:visible').removeClass('selector').next().addClass('selector');  },
      prevStep: function() {  $('[data-step]:visible').removeClass('selector').prev().addClass('selector');  }
    };
    var stepFormAddClass = function(param1) {
      $(param1).on('click', function(event) {
        event.preventDefault();
        if (param1 == '.js__nextButton') { moveStep.nextStep(); } else { moveStep.prevStep();}
      });
    };
    stepFormAddClass('.js__nextButton');
    stepFormAddClass('.js__prevButton');
  }

переписал по новой. теперь работает переключение и нет ошибок
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск