@rollbackTNV
Программист Bitrix & other CMS

Как заставить работать скрипты с включенным ajax при возвращении назад в каталоге Битрикс?

Сама проблема, над которой бьюсь уже не первый месяц. На странице находится комплексный компонент bitrix.catalog. В настройках включаю использование AJAX-режима c "эмуляцией навигации браузера" для подключения кнопок "назад" и "вперед" в браузере. Находясь в каталоге (catalog.section) щелкаю на любой элемент, в ajax-режиме перехожу на детальную страницу - далее нажимаю кнопку назад в браузере - возвращаюсь на исходную страницу с каталогом и битриксовские скрипты каталога начисто отваливаются. Ни ошибок, ни реакции, ни отклика. дополнитеьлных JQuery, однако "умный фильтр" с включенным INSTANCE_RELOAD и все остальный скрипты, не касающееся шаблона catalog.section - работают.

Приблизительно понимаю суть проблемы, что при переходе на другую страницу BX.Ajax повторно перезагружает и изменяет id контейнера. Проблему частично решил на JQuery через делегирование
$("body").on("click",".catalog .item", function()
{
	$(this).addClass("test"); //
});


После сравнения скриптов умного фильтра (который работает) и каталога нашел существенные различия, а именно фильтр работает через onclick в тэгах передавая this, а каталог использует глобальный window без передачи параметров. Так вот вопрос - есть ли какой нибудь простой метод исправления проблемы, не переписывая скрипты компонента? Каким образом делегировать события в нативном BX.js каталога? В JS я соображаю, но с объектной моделью знания хромают.
  • Вопрос задан
  • 1865 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект