Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимизировать код (https://javascript.ru/forum/misc/36208-optimizirovat-kod.html)

webmanss 07.03.2013 15:04

Оптимизировать код
 
Привет всем!
Есть много похожего кода, вопрос в том, чтобы его уменьшить.

function selekt(id) {
if(id == "ruchnoe")
  document.getElementById('sel-avto').className  = "not-select";
  document.getElementById('not-sel').className  = "not-select";
  document.getElementById(id).className  = "select";
  document.getElementById('tr1').style.dysplay = "none";
  document.getElementById('tr2').style.dysplay = "none";
  document.getElementById('tr3').style.dysplay = "none";
  document.getElementById('tr4').style.dysplay = "block";
  document.getElementById('osn-ruch').checked='checked';
  document.getElementById('osn-ruch').fireEvent('change');
  
  }
else if(id == "avto")
  document.getElementById('not-sel').className  = "not-select";
  document.getElementById('sel-prof').className  = "not-select";
  document.getElementById(id).className  = "select";
  document.getElementById('tr1').style.dysplay = "none";
  document.getElementById('tr2').style.dysplay = "none";
  document.getElementById('tr3').style.dysplay = "block";
  document.getElementById('tr4').style.dysplay = "none";
  document.getElementById('osn-avto').checked='checked';
  document.getElementById('osn-avto').fireEvent('change');
  
  }  
...
else if
else if
else if
...
}


вобщем нужно управлять стилями и классами блоков.
Как это можно решить иначе?

danik.js 07.03.2013 15:33

jQuery? Короткие имена методов, цепочки вызовов - все это позволит ужать код в две - три строчки )

webmanss 07.03.2013 17:52

Я понимаю, что спасение утопающих, дело рук самих утопающих).
Но хочется продуктивной помощи.
Есть примеры, как сделать?

danik.js 07.03.2013 18:01

Конечно есть. Много, очень много примеров.

danik.js 07.03.2013 18:02

Хотя зря я jQuery посоветовал. Это не избавит от проблемы говнокода. Просто позволит его ужать в объеме )
От этого он понятнее и рациональней не станет ) Только тормознее.

danik.js 07.03.2013 18:04

Цитата:

Сообщение от webmanss
document.getElementById('osn-avto').fireEvent('change')

Мутулз чтоли? Чем не инструмент? Хотя тут поглобальнее проблемы.

Deff 07.03.2013 18:21

Создать основной массив установок
var arr=[
id,key,value,
id,key,value,
...
id,key,value
]

, в массиве от условий(id) менять параметры, arr[3*Номер строки+Номер эл-та в строке]
и вызывать единственную функцию установки параметров модифицированного массива

jsjob 07.03.2013 18:59

А зачем?
Если у вас хватило сил это всё написать, то у кампутера уж точно хватит чтоб выполнить. ;)

webmanss 07.03.2013 21:25

Вот, другое дело) Всем спасибо!


Часовой пояс GMT +3, время: 17:54.