|
Скрипты в java.js перестают работать.
Добрый день, друзья!
У меня порядка 6-10 простеньких калькуляторов, некоторые из которых с зависимыми селектами. В будущем размещаться калькуляторы будут на одной странице, а скрипты к ним размещаться в "java.js". Столкнулся с такой проблемой: Когда все скрипты положены в одном файле("java.js"), зависимости перестают работать. В чем может быть дело? И вообще правильно ли так делать? Возможно в моем случае лучше выкладывать все скрипты к калькуляторам в отдельный файл или может вовсе прописывать в той же form-е? У всех калькуляторов нет совпадающих id и name, на которые ссылаются скрипты. Сейчас: общий файл "java.js" и отдельные html-страницы(калькулятор1, калькулятор2). Что бы работал: делаю отдельный файл "js_cal1.js" для определенного калькулятора, поскольку из общего файла не работают корректно. Прошу помощи:help: . |
Цитата:
|
Зачем вообще вам эти файлы? Постите скрипты в хтмле сразу после хтмля и не парьтесь кактусом.
|
oneplus,
нужен код |
oneplus,
забыли бы вы о кодировке 1251 было бы проще, освоили бы консоль было бы ещё проще где на вашей странице bsize_sel = document.getElementById("ban_size_id"), элемент с таким id? строка 43 пост 6 |
А, понятно, это эпическое продолжение усилий хардкорного РА наладить сайт по наружке.
Так делают колхозники не бывавшие в Смольном: switch (a.lb_surface.selectedIndex) { case 0: surface=1030; break; case 1: surface=2120; break; case 2: surface=660; break; case 3: surface=0; break; case 4: surface=1090; break; Так делают люди на заводах: <option s="1030">Лабуда1</option> <option s="2120">Лабуда2</option> <option s="660">Лабуда3</option> <option s="0">Лабуда4</option> <option s="1090">Лабуда5</option> Если надо больше параметров - забивают сколько надо, алфавит - 23 буквы, это если по одной для экономии трафа юзать. Затем вместо switch (a.lb_surface.selectedIndex) пишут var surface = a.lb_surface.options[a.lb_surface.selectedIndex].getAttribute('s'); И все. То есть не все, а вот если все переделать нормально, то роня проронит слезу. |
Цитата:
6-ой пост это общий файл "java.js", 5-ый пост страница хтмл "широкоформатная печать" и скрипт к печати, который корректно работает только если поместить отдельно в java.js в единственном экземпляре. В сборе со всеми скриптами не работает. После удаления на странице: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> Теперь широкоформатная печать с чекбоксами работает. Не прописанная кодировка на хтмл странице критично? Удалил кодировку на всех неработающих страницах, по прежнему не работает Световые короба. Не удаляется селект. Тот самый) С отдельным фалом js работает. |
Кроме того есть json и при желании сделать все без привязки к элементам заводские делают так:
foo={ surfaces:[1030,2120,660,0,1090], /* тут вся остальная бд */ }; var surface=foo.surfaces[a.lb_surface.selectedIndex]; Но возникает вопрос. Откуда тогда берется хтмл в качестве интерфейса? Должны быть данные, по которым делается рендер. Когда он делается возникает соблазн натыкать в хтмл все необходимые и связанные с выбором юзера данные, чтоб не дублировать их в переменных, ибо получится двойная работа. Так и делают. Забивают хтмл данными и забирают их по обстоятельствам и по выбору. Либо в пресловутые data- теги, толку с которых как с козла сгущенного молока, либо в любые не занятые атрибуты как это делает всеми любимый JQuery кстати. |
Цитата:
Вы ж ничего не проверяете как самый настоящий селянин. Когда вы собрали все скрипты в кучу для всех страниц, то коню ясно - надо проверять есть ли соответствующий и нужный конкретному скрипту элемент на _этой_ странице и, если есть - запускать процесс, а если нет - пропускать. |
Цитата:
|
Часовой пояс GMT +3, время: 11:11. |
|