Здравствуйте, друзья.
Написал код, но кажется он может выглядеть гораздо красивее.
Дело в том, что первая часть дублирует вторую часть, меняются только переменные. У меня такого кода 6000 строк.
Как оптимизировать. Заранее спасибо.
//ПЕРВАЯ ЧАСТЬ
$(function() {
var update12 = function() {
var val = +this.value;
var showFirst = [4].indexOf(val) >= 0;
var showSecond = [3,4,5,6,8].indexOf(val) >= 0;
$('#f_lr1gr2').toggle(showFirst);
$('#f_lr1grt').toggle(showSecond);
!showFirst && $('#f_lr1gr2 select').val(1).change();
!showSecond && $('#f_lr1grt select').val(1).change();
};
var update44 = function() {
var val = +this.value;
var showFirst = [8].indexOf(val) >= 0;
$('#f_lr1gr2el1').toggle(showFirst);
$('#f_lr1gr2el2').toggle(showFirst);
$('#f_lr1gr2el3').toggle(showFirst);
$('#f_lr1gr2el4').toggle(showFirst);
$('#f_lr1gr2el5').toggle(showFirst);
!showFirst && $('#f_lr1gr2el1 select').val(1).change();
!showFirst && $('#f_lr1gr2el2 select').val(1).change();
!showFirst && $('#f_lr1gr2el3 select').val(1).change();
!showFirst && $('#f_lr1gr2el4 select').val(1).change();
!showFirst && $('#f_lr1gr2el5 select').val(1).change();
};
$('#lr1rt').change(update12).change();
$('#lr1rt').change(update44).change();
});
//ВТОРАЯ ЧАСТЬ
$(function() {
var update112 = function() {
var val = +this.value;
var showFirst = [4].indexOf(val) >= 0;
var showSecond = [3,4,5,6,8].indexOf(val) >= 0;
$('#f_sp1gr2').toggle(showFirst);
$('#f_sp1grt').toggle(showSecond);
!showFirst && $('#f_sp1gr2 select').val(1).change();
!showSecond && $('#f_sp1grt select').val(1).change();
};
var update144 = function() {
var val = +this.value;
var showFirst = [8].indexOf(val) >= 0;
$('#f_sp1gr2el1').toggle(showFirst);
$('#f_sp1gr2el2').toggle(showFirst);
$('#f_sp1gr2el3').toggle(showFirst);
$('#f_sp1gr2el4').toggle(showFirst);
$('#f_sp1gr2el5').toggle(showFirst);
!showFirst && $('#f_sp1gr2el1 select').val(1).change();
!showFirst && $('#f_sp1gr2el2 select').val(1).change();
!showFirst && $('#f_sp1gr2el3 select').val(1).change();
!showFirst && $('#f_sp1gr2el4 select').val(1).change();
!showFirst && $('#f_sp1gr2el5 select').val(1).change();
};
$('#sp1rt').change(update112).change();
$('#sp1rt').change(update144).change();
});