Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрипт работает через раз (https://javascript.ru/forum/dom-window/47712-skript-rabotaet-cherez-raz.html)

Эдди 04.06.2014 18:33

Скрипт работает через раз
 
Никогда с таким не сталкивался. (ajax/query)
В php скрипт или работает всегда, или не работает никогда.
Суть вопроса:

Есть поля со списком (multiple) №№ 1, 2 и 3.
В первом списке Категория товаров.
Во втором списке Подкатегория товаров.
В третьем списке хараткеристика товаров.

При изменении первого списка $( '#cat' ).change(function () {} удаляю все опшны из второго списка. Вывожу все подкатегории во втором списке, соответствующие выбору первого списка.
Затем удаляю все опшны третьего списка. Вывожу соответствующие записи первого списка.

Работает один раз. Перехожу на другую категорию товаров в первом списке, все работает, на третью - все работает. Перехожу на предыдущую - все работает. Потом на первую - не работает. То есть список №2, а иногда и №3 остается пустым. Кликаю по первому списку много раз. Несколько раз во втором и третьем списке все выводится. Но, скажем, в четвертый раз - не выводится.

Где хоть копать?

Каждый скрипт php находится в отдельном файле.
Сейчас рехнусь.:blink:

Erolast 04.06.2014 19:30

В консоль смотрел?

Эдди 04.06.2014 20:09

Не умею. Я ведь только учусь.

Эдди 04.06.2014 20:11

Может быть из-за этой функции? Сейчас ее отключу и проверю.
//АНИМАЦИЯ ПРИ ОЖИДАНИИ ОТВЕТА СЕРВЕРА

function stopLoadingAnimation() //функция останавливающая анимацию
{
$("#waiting").hide(); //просто скрываем анимацию
}
//АНИМАЦИЯ ПРИ ОЖИДАНИИ ОТВЕТА СЕРВЕРА
  function startLoadingAnimation() //функция запуска анимации
  {
    //Находим элемент с изображением загрузки и убераем его невидимость
    var imgObj = $("#waiting");
    imgObj.show();
    //Вычисляем центр страницы, чтобы анимация оказалось в центре
    var centerY = $(window).scrollTop() + ($(window).height() + imgObj.height())/2;
    var centerX = $(window).scrollLeft() + ($(window).width() + imgObj.width())/2;
    //Меняем координаты изображения на нужные
    imgObj.offset({top:centerY, left:centerX});
  }
  function stopLoadingAnimation() //функция останавливающая анимацию
  {
    $("#waiting").hide(); //просто скрываем анимацию
  }

Erolast 04.06.2014 22:26

Цитата:

Сообщение от Эдди (Сообщение 314822)
Не умею. Я ведь только учусь.

Ох. Если что-то не работает - в первую очередь смотри в браузерную консоль. Верней, в консоль надо смотреть всегда, даже если все, казалось бы, работает правильно.
В большинстве браузеров консоль открывается комбинацией Ctrl+Shift+I.

Эдди 05.06.2014 19:18

Пока с консолью разбираюсь, задаю очередной тупой вопрос.
Жду Да или Нет.

В одной функции (ajax/jquery) нормально обращаться два раза к разным скриптам php, находящимся в разных файлах?
Или моветон?

Просто я каждое действие ajax делаю в отдельном файле по двум причинам:
1. Экономия времени и трафика.
2. Каждый отдельный файл скрипта php может понадобится в другом месте при расширении программы.

Erolast 07.06.2014 10:00

Ничего особо плохого в двух запросах в одной функции нет, но на практике в этом как-то нет надобности. Возможно, у тебя с архитектурой что-то не то.


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