Ответ найден!
Всем на заметку, да и для меня в том числе, есть такой параметр: AJAX_OPTION_ADDITIONAL - упоминание о нем я нашел случайно, вообще в другой ветке форума, и по другому вопросу. Но суть такова, что параметр позволяет вызывать компоненты в цикле, при этом не нарушая их работу (как было в указано в проблеме: неверные запросы в навигации)!
Я при вызове компонента в цикле, указал: "AJAX_OPTION_ADDITIONAL" => $secta
(где $secta - это id подраздела, для которого вызывается компонент, т.е. то самое "козырное" свойство, которое позволит Ajax Битрикса понять что к чему)
Надеюсь, кому-то это поможет!
Как итог: данная настройка, позволила используя только стандартные компоненты Битрикса, кастомизировать Ajax прелоадер и сделать красивый вывод каталога мебели! Показать не смогу, к сожалению =)
При клике на кнопку "Все" вызывается функция Jquery:
Пока Ajax не выполнится, прелоадер не исчезает. Так же можно обработать и ошибку, с помощью
Всем откликнувшимся, большое спасибо!
Понимаю, может поступал глупо и было "проще" написать все с 0, со своим Ajax, но тогда зачем нам Битрикс?) Теперь все легко и просто, можно создавать прелоадеры для любого компонента быстро и удобно, используя лишь пару строчек =)
Процесс работы прикреплен в скринах:
1. Положение "покоя":
2. Работа кастомного прелоадера:
3. Результат:
P.S.: для того, чтобы скрывать стандартный и немного раздражающий, чего греха таить, используется простое CSS-правило
На этом все! Спасибо за внимание =)
Всем на заметку, да и для меня в том числе, есть такой параметр: AJAX_OPTION_ADDITIONAL - упоминание о нем я нашел случайно, вообще в другой ветке форума, и по другому вопросу. Но суть такова, что параметр позволяет вызывать компоненты в цикле, при этом не нарушая их работу (как было в указано в проблеме: неверные запросы в навигации)!
Я при вызове компонента в цикле, указал: "AJAX_OPTION_ADDITIONAL" => $secta
(где $secta - это id подраздела, для которого вызывается компонент, т.е. то самое "козырное" свойство, которое позволит Ajax Битрикса понять что к чему)
Надеюсь, кому-то это поможет!
Как итог: данная настройка, позволила используя только стандартные компоненты Битрикса, кастомизировать Ajax прелоадер и сделать красивый вывод каталога мебели! Показать не смогу, к сожалению =)
При клике на кнопку "Все" вызывается функция Jquery:
| Код |
|---|
$('.show_all').click(function() {
width = $(this).parent("div").parent("div").parent("div").width(); //Считывание щирины блока
height = $(this).parent("div").parent("div").parent("div").height(); //Считывание высоты блока
now_active = $(this).parent("div").parent("div").parent("div").attr("id"); //Название вызвавшего прелоадер элемента
$('div.'+now_active).css({
"display": "block",
"width": width,
"height": height,
});
$('div.'+now_active).children("img").css("margin-top", (height/2)-12);
$('div.'+now_active).removeClass("hidden");
//При успешном выполнении функции, вызывается кастомное событие из стандартного "арсенала" Битрикса:
BX.addCustomEvent('onAjaxSuccess', function() {
$('div.'+now_active).addClass("hidden");
});
});
|
Пока Ajax не выполнится, прелоадер не исчезает. Так же можно обработать и ошибку, с помощью
| Код |
|---|
BX.addCustomEvent('onAjaxFailure', function() {
$('div.'+now_active).addClass("hidden");
}); |
Всем откликнувшимся, большое спасибо!
Понимаю, может поступал глупо и было "проще" написать все с 0, со своим Ajax, но тогда зачем нам Битрикс?) Теперь все легко и просто, можно создавать прелоадеры для любого компонента быстро и удобно, используя лишь пару строчек =)
Процесс работы прикреплен в скринах:
1. Положение "покоя":
2. Работа кастомного прелоадера:
3. Результат:
P.S.: для того, чтобы скрывать стандартный и немного раздражающий, чего греха таить, используется простое CSS-правило
| Код |
|---|
.bx-core-waitwindow {
display: none;
}
|
На этом все! Спасибо за внимание =)

,