Автор Тема: Модуль blocklayered и function reloadContent  (Прочитано 692 раз)

26 Март 2015, 18:04:20
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, может кто сталкивался.

В фильтрах выбираю цвет, после чего несколько раз подряд выполняется
/modules/blocklayered/blocklayered-ajax.php?id_category_layered=3&layered_id_attribute_group_10=10_3&orderby=position&orderway=desctrue


Вскрытие показало, что выполняется несколько раз подряд function reloadContent
внутри которой имеется  Ajax функция, которая не успевает выполнится и опять повторяется в результате чего в Firefox ошибка Aborted

Вопрос, как ограничить количество вызовов function reloadContent до одной?

26 Март 2015, 18:21:58
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно определить все события на которых висит reloadContent и удалить лишнии.
В стандарте она запускается только раз, после выбора фильтра.
27 Март 2015, 10:03:48
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дальнейшие раскопки в blocklayered.js ещё больше поразили меня........

$(document).ready(function()
{
   cancelFilter();
   openCloseFilter();

   // Click on color
   $(document).on('click', '#layered_form input[type=button], #layered_form label.layered_color', function(e) {
   console.log(1);

Когда я первый раз захожу в категорию и нажимаю на какой-то из цветов, то в консоле цифра 1 печатается три раза подряд
Если остаюсь в той же категории и нажимаю опять на цвет, то 1 отображается один раз (всё ок)

Вопрос с чем связано, то что при переходе в категорию и выборе цвета событие $(document).ready(function()
срабатывает три раза???
27 Март 2015, 10:55:27
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Мда, похоже это был конфликт со сторонним модулем меню категорий...
Теперь бы ещё понять почему сортировка "Цена по возрастанию" всё ОК, а по убыванию сортирует также как и по возрастанию :(
27 Март 2015, 10:58:22
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Крнфликты javascript бывают очень часто.  Во многих модулях используют одинаковые названия классов и ид.
27 Март 2015, 11:16:02
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Теперь бы ещё понять почему сортировка "Цена по возрастанию" всё ОК, а по убыванию сортирует также как и по возрастанию :(
Так опять console.log покажет, что там передает при переключении.