Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.05.2015, 13:02
Интересующийся
Отправить личное сообщение для oneplus Посмотреть профиль Найти все сообщения от oneplus
 
Регистрация: 25.05.2015
Сообщений: 24

Скрипты в java.js перестают работать.
Добрый день, друзья!
У меня порядка 6-10 простеньких калькуляторов, некоторые из которых с зависимыми селектами. В будущем размещаться калькуляторы будут на одной странице, а скрипты к ним размещаться в "java.js".
Столкнулся с такой проблемой:
Когда все скрипты положены в одном файле("java.js"), зависимости перестают работать.
В чем может быть дело? И вообще правильно ли так делать?
Возможно в моем случае лучше выкладывать все скрипты к калькуляторам в отдельный файл или может вовсе прописывать в той же form-е?

У всех калькуляторов нет совпадающих id и name, на которые ссылаются скрипты.

Сейчас: общий файл "java.js" и отдельные html-страницы(калькулятор1, калькулятор2).
Что бы работал: делаю отдельный файл "js_cal1.js" для определенного калькулятора, поскольку из общего файла не работают корректно.

Прошу помощи .
Ответить с цитированием
  #2 (permalink)  
Старый 28.05.2015, 13:21
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от oneplus
В чем может быть дело?
Кашпировский отошел от практики.
Ответить с цитированием
  #3 (permalink)  
Старый 28.05.2015, 13:22
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Зачем вообще вам эти файлы? Постите скрипты в хтмле сразу после хтмля и не парьтесь кактусом.
Ответить с цитированием
  #4 (permalink)  
Старый 28.05.2015, 13:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

oneplus,
нужен код
Ответить с цитированием
  #5 (permalink)  
Старый 28.05.2015, 14:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

oneplus,
забыли бы вы о кодировке 1251 было бы проще, освоили бы консоль было бы ещё проще

где на вашей странице bsize_sel = document.getElementById("ban_size_id"), элемент с таким id? строка 43 пост 6
Ответить с цитированием
  #6 (permalink)  
Старый 28.05.2015, 14:18
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А, понятно, это эпическое продолжение усилий хардкорного РА наладить сайт по наружке.

Так делают колхозники не бывавшие в Смольном:

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');

И все. То есть не все, а вот если все переделать нормально, то роня проронит слезу.

Последний раз редактировалось kostyanet, 28.05.2015 в 14:21.
Ответить с цитированием
  #7 (permalink)  
Старый 28.05.2015, 14:55
Интересующийся
Отправить личное сообщение для oneplus Посмотреть профиль Найти все сообщения от oneplus
 
Регистрация: 25.05.2015
Сообщений: 24

Сообщение от рони Посмотреть сообщение
oneplus,
забыли бы вы о кодировке 1251 было бы проще, освоили бы консоль было бы ещё проще

где на вашей странице bsize_sel = document.getElementById("ban_size_id"), элемент с таким id? строка 43 пост 6
Это калькулятор баннера, а страница хтмл(5 пост) - это калькулятор широкоформатной печати (пока калькуляторы отдельно по страницам).
6-ой пост это общий файл "java.js",
5-ый пост страница хтмл "широкоформатная печать" и скрипт к печати, который корректно работает только если поместить отдельно в java.js в единственном экземпляре. В сборе со всеми скриптами не работает.

После удаления на странице: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Теперь широкоформатная печать с чекбоксами работает.

Не прописанная кодировка на хтмл странице критично?

Удалил кодировку на всех неработающих страницах, по прежнему не работает Световые короба. Не удаляется селект. Тот самый)

С отдельным фалом js работает.

Последний раз редактировалось oneplus, 28.05.2015 в 16:05.
Ответить с цитированием
  #8 (permalink)  
Старый 28.05.2015, 15:05
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Кроме того есть json и при желании сделать все без привязки к элементам заводские делают так:

foo={
    surfaces:[1030,2120,660,0,1090],
    /* тут вся остальная бд */
};

var surface=foo.surfaces[a.lb_surface.selectedIndex];


Но возникает вопрос. Откуда тогда берется хтмл в качестве интерфейса? Должны быть данные, по которым делается рендер. Когда он делается возникает соблазн натыкать в хтмл все необходимые и связанные с выбором юзера данные, чтоб не дублировать их в переменных, ибо получится двойная работа.

Так и делают. Забивают хтмл данными и забирают их по обстоятельствам и по выбору. Либо в пресловутые data- теги, толку с которых как с козла сгущенного молока, либо в любые не занятые атрибуты как это делает всеми любимый JQuery кстати.
Ответить с цитированием
  #9 (permalink)  
Старый 28.05.2015, 15:08
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от oneplus
С отдельным фалом js работает.
Ну вам же человек roni написал что надо открыть консоль скрипта и увидеть там ошибки обращения к несуществующим элементам.

Вы ж ничего не проверяете как самый настоящий селянин. Когда вы собрали все скрипты в кучу для всех страниц, то коню ясно - надо проверять есть ли соответствующий и нужный конкретному скрипту элемент на _этой_ странице и, если есть - запускать процесс, а если нет - пропускать.
Ответить с цитированием
  #10 (permalink)  
Старый 28.05.2015, 15:10
Интересующийся
Отправить личное сообщение для oneplus Посмотреть профиль Найти все сообщения от oneplus
 
Регистрация: 25.05.2015
Сообщений: 24

Сообщение от kostyanet Посмотреть сообщение
А, понятно, это эпическое продолжение усилий хардкорного РА наладить сайт по наружке.

Если надо больше параметров - забивают сколько надо, алфавит - 23 буквы, это если по одной для экономии трафа юзать.

Затем вместо switch (a.lb_surface.selectedIndex) пишут

var surface = a.lb_surface.options[a.lb_surface.selectedIndex].getAttribute('s');

И все. То есть не все, а вот если все переделать нормально, то роня проронит слезу.
Впервые слышу getAttribute('s'), обязательно учту, и рад бы написать "неколхозный" код, да не бывает все сразу.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестают работать скрипты после добавления ajax-контента на страницу alecto jQuery 11 18.11.2014 02:39
Помогите чайнику, перестали работать некоторые скрипты Arey jQuery 13 08.03.2014 01:32
Скрипты перестали работать! vladly Общие вопросы Javascript 3 28.11.2012 16:19
jscript-ы в IE8 перестали работать jsVAN Internet Explorer 10 20.12.2011 00:30
При подключении скрипта, перестают работать другие скрипты 365441010 Элементы интерфейса 1 30.01.2010 09:25