Сама проблема, над которой бьюсь уже не первый месяц. На странице находится комплексный компонент 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 я соображаю, но с объектной моделью знания хромают.