- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
function get_sel_values(index){
var test = eval('typeof opt_val'+index);
if ( test != 'undefined' ){
eval('var sel_values = opt_val'+index);
return sel_values;
}
else { return false; }
}
//**************************************************************
function get_sel_text(index){
var test = eval('typeof opt_text'+index);
if ( test != 'undefined' ){
eval('var sel_text = opt_text'+index);
return sel_text;
}
else { return false; }
}
//**************************************************************
function show_select(index, lev, dv){
if ( dv == 'jdc1'){ var tr = "jdc2";}
if ( dv == 'jdc2'){ var tr = "jdc3";}
if ( dv == 'jdc3'){ var tr = "jdc4";}
var curr_sel_text = get_sel_text(index);
var curr_sel_value = get_sel_values(index);
if ( curr_sel_value != false && curr_sel_text != false ){
if ( dv == 'jdc1'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "hidden";
document.getElementById('jdc3').style.visibility = "hidden";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc2'].length = 0;
document.forms["form1"].elements['cc3'].length = 0;
document.forms["form1"].elements['cc4'].length = 0;
}
if ( dv == 'jdc2'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "visible";
document.getElementById('jdc3').style.visibility = "hidden";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc3'].length = 0;
document.forms["form1"].elements['cc4'].length = 0;
}
if ( dv == 'jdc3'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "visible";
document.getElementById('jdc3').style.visibility = "visible";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc4'].length = 0;
}
var count_values = curr_sel_value.length;
var category_list = document.forms["form1"].elements[lev];
var count_category_list = category_list.options.length;
category_list.length = 0;
for (i = 0; i < count_values; i++){
if (document.createElement){
var newCategoryListOption = document.createElement("OPTION");
newCategoryListOption.text = curr_sel_text[i];
newCategoryListOption.value = curr_sel_value[i];
(category_list.options.add) ? category_list.options.add(newCategoryListOption) : category_list.add(newCategoryListOption);
}else{
category_list.options[i] = new Option(curr_sel_text[i], curr_sel_value[i], false, false);
}
}
document.getElementById(tr).style.visibility = "visible";
}
else{
document.getElementById(tr).style.visibility = "hidden";
}
}
//-->
ReallyBugMeNot 24.02.2011 09:14 # 0
wvxvw 24.02.2011 12:25 # 0
шаг 1. копируете все в одну функцию.
шаг 2. находите уникальные элементы, их выносите в параметры функции.
шаг 3. в функции оставляете только повторяющиеся элементы, а уникальные заменяете ссылками на параметры.
шаг 4. повторить шаг 3.
???
profit!
bugmenot 24.02.2011 13:38 # 0
рефакторить-шнифакторить
eval('typeof... блистает
istem 25.02.2011 01:05 # 0
"раздвиньте мне куки браузером!" (почти ©)
Lure Of Chaos 25.02.2011 15:29 # 0
istem 26.02.2011 01:02 # 0
ReallyBugMeNot 25.02.2011 13:14 # 0
wvxvw 25.02.2011 14:32 # −1
Смысл в том, что тупое механическое копирование одного и того же кода == говнокод. Это так потому, что когда вам нужно будет сделать логически одно изменение (например, "jdc" по причине поллит не корректности надо будет назвать "jcd"), вероятность того, что произойдет ошибка, и не все обращения к "jdc" будут заменены на новые будет тем выше, чем больше раз бы к нему обращались.
ReallyBugMeNot 28.02.2011 15:31 # 0
wvxvw 28.02.2011 18:21 # 0
ReallyBugMeNot 03.03.2011 10:07 # +1
Почему бы весь неоптимизированный код не назвать говном?
wvxvw 25.02.2011 14:34 # −1
wvxvw 25.02.2011 14:34 # −1
wvxvw 25.02.2011 14:42 # +1
:)
babaika 26.02.2011 01:36 # 0
bugmenot 26.02.2011 01:54 # 0
wvxvw 26.02.2011 12:23 # 0
babaika 26.02.2011 14:11 # 0
А кстати, это select, см.#5784
wvxvw 26.02.2011 19:35 # 0
bugmenot 26.02.2011 19:16 # 0
формы в коллекцию elements не попадают
> document.forms["cc4"]
опять?
wvxvw 26.02.2011 19:35 # 0
bugmenot 26.02.2011 23:14 # 0
babaika 27.02.2011 22:35 # 0
Строку можно просто удалить.
У формы length - чистый геттер, Опера и ФФ его "в лоб" менять не дают.
bugmenot 28.02.2011 00:26 # 0
а в самой новой опере даже успешно почистились опции, надо же