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. как избавится от ошибки? понимаю что функция вошла в цикл и это не самый лучший способ что бы листать блоки туда сюда :( |
функцию вынеси за цикл фор, зачем ее в цикл засунул?
|
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); }; } ошибка пропадает. но зато перестают перелистыватся туда сюда дивы :( и моя форма ломается |
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); } } попробуйте вот так, если не получится, сделайте тестовый пример здесь. |
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'); } переписал по новой. теперь работает переключение и нет ошибок |
Часовой пояс GMT +3, время: 14:54. |