Рациональность JS кода.
Доброго времени суток. Я написал скрипт динамической замены input type="file". После чего JS эксперт мне сказал - "налепленно все в кучу, вы не понимаете что делаете и зачем делаете. у вас проблемы в базовых знаниях, извините, но не могу вам разжевывать". Кто сможет грамотно раскрыть его слова.
functiоn InputFileFake() { var fileInput = document.getElementById('file_input'); var fileType = document.createElement('div'); var divFile = document.getElementById('div_file'); var fileButtоn = document.createElement('div'); var fakeFile = document.createElement('div'); fileInput.оnchange = HandleChanges; fileType.style.display = 'none'; fileType.style.background = 'url(images/form/file_type_icons.png)'; fileType.setAttribute('id','file_type'); fileButton.setAttribute('id','file_button'); fakeFile.setAttribute('id','fake_button'); divFile.appendChild(fileButton); divFile.appendChild(fakeFile); divFile.appendChild(fileType); }; functiоn HandleChanges() { fileInput = document.getElementById('file_input'); fileType = document.getElementById('file_type'); file = fileInput.value; reWin = /.*\\(.*)/; var fileTitle = file.replace(reWin, "$1"); //выдираем название файла reUnix = /.*\/(.*)/; fileTitle = fileTitle.replace(reUnix, "$1"); //выдираем название файла fileType.innerHTML = fileTitle; var RegExExt =/.*\.(.*)/; var ext = fileTitle.replace(RegExExt, "$1");//и его расширение var pos; if (ext){ switch (ext.toLowerCase()) { case 'doc': pos = '0'; break; case 'bmp': pos = '16'; break; case 'jpg': pos = '32'; break; case 'jpeg': pos = '32'; break; case 'png': pos = '48'; break; case 'gif': pos = '64'; break; case 'psd': pos = '80'; break; case 'mp3': pos = '96'; break; case 'wav': pos = '96'; break; case 'ogg': pos = '96'; break; case 'avi': pos = '112'; break; case 'wmv': pos = '112'; break; case 'flv': pos = '112'; break; case 'pdf': pos = '128'; break; case 'exe': pos = '144'; break; case 'txt': pos = '160'; break; default: pos = '176'; break; }; fileType.style.display = 'block'; fileType.style.background = 'url(images/form/file_type_icons.png) no-repeat 0 -'+pos+'px'; }; }; После целого часа рассматривания монитора, я заметил что по паскалевским навыкам я объявляю переменные, а только потом их использую, рациональнее будет объявлять сразу когда нужна, ибо JS это умеет. |
Эм, мне кажется или код практически полностью взят отсюда?
|
Цитата:
|
То, что сразу в глаза бросается:
Цитата:
Цитата:
Цитата:
var obj = {doc: 0, bmp: 16/*, ....*/}; var pos = obj[ext.toLowerCase()]; |
Часовой пояс GMT +3, время: 06:47. |