Ответ найден!
Всем на заметку, да и для меня в том числе, есть такой параметр: [B]AJAX_OPTION_ADDITIONAL [/B]- упоминание о нем я нашел случайно, вообще в другой ветке форума, и по другому вопросу. Но суть такова, что параметр позволяет вызывать компоненты в цикле, при этом не нарушая их работу (как было в указано в проблеме: неверные запросы в навигации)!
Я при вызове компонента в цикле, указал: [B]"AJAX_OPTION_ADDITIONAL" => $secta[/B]
(где [B]$secta[/B] - это id подраздела, для которого вызывается компонент, т.е. то самое "козырное" свойство, которое позволит Ajax Битрикса понять что к чему)
Надеюсь, кому-то это поможет!
Как итог: данная настройка, позволила используя только стандартные компоненты Битрикса, кастомизировать Ajax прелоадер и сделать красивый вывод каталога мебели! Показать не смогу, к сожалению =)
При клике на кнопку "Все" вызывается функция Jquery:
[CODE]$('.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");
});
});
[/CODE]
Пока Ajax не выполнится, прелоадер не исчезает. Так же можно обработать и ошибку, с помощью
[CODE]BX.addCustomEvent('onAjaxFailure', function() {
$('div.'+now_active).addClass("hidden");
});[/CODE]
Всем откликнувшимся, большое спасибо!
Понимаю, может поступал глупо и было "проще" написать все с 0, со своим Ajax, но тогда зачем нам Битрикс?) Теперь все легко и просто, можно создавать прелоадеры для любого компонента быстро и удобно, используя лишь пару строчек =)
Процесс работы прикреплен в скринах:
1. Положение "покоя": http://joxi.ru/mtz6UhjKTJAUXWHYRoU
2. Работа кастомного прелоадера: http://joxi.ru/x9z6UhjKTJDfXMLJT94
3. Результат: http://joxi.ru/BN36UhjKTJAPXZKHuIs
P.S.: для того, чтобы скрывать стандартный и немного раздражающий, чего греха таить, используется простое [B]CSS-правило[/B]
[CODE].bx-core-waitwindow {
display: none;
}
[/CODE]
На этом все! Спасибо за внимание =)
Всем на заметку, да и для меня в том числе, есть такой параметр: [B]AJAX_OPTION_ADDITIONAL [/B]- упоминание о нем я нашел случайно, вообще в другой ветке форума, и по другому вопросу. Но суть такова, что параметр позволяет вызывать компоненты в цикле, при этом не нарушая их работу (как было в указано в проблеме: неверные запросы в навигации)!
Я при вызове компонента в цикле, указал: [B]"AJAX_OPTION_ADDITIONAL" => $secta[/B]
(где [B]$secta[/B] - это id подраздела, для которого вызывается компонент, т.е. то самое "козырное" свойство, которое позволит Ajax Битрикса понять что к чему)
Надеюсь, кому-то это поможет!
Как итог: данная настройка, позволила используя только стандартные компоненты Битрикса, кастомизировать Ajax прелоадер и сделать красивый вывод каталога мебели! Показать не смогу, к сожалению =)
При клике на кнопку "Все" вызывается функция Jquery:
[CODE]$('.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");
});
});
[/CODE]
Пока Ajax не выполнится, прелоадер не исчезает. Так же можно обработать и ошибку, с помощью
[CODE]BX.addCustomEvent('onAjaxFailure', function() {
$('div.'+now_active).addClass("hidden");
});[/CODE]
Всем откликнувшимся, большое спасибо!
Понимаю, может поступал глупо и было "проще" написать все с 0, со своим Ajax, но тогда зачем нам Битрикс?) Теперь все легко и просто, можно создавать прелоадеры для любого компонента быстро и удобно, используя лишь пару строчек =)
Процесс работы прикреплен в скринах:
1. Положение "покоя": http://joxi.ru/mtz6UhjKTJAUXWHYRoU
2. Работа кастомного прелоадера: http://joxi.ru/x9z6UhjKTJDfXMLJT94
3. Результат: http://joxi.ru/BN36UhjKTJAPXZKHuIs
P.S.: для того, чтобы скрывать стандартный и немного раздражающий, чего греха таить, используется простое [B]CSS-правило[/B]
[CODE].bx-core-waitwindow {
display: none;
}
[/CODE]
На этом все! Спасибо за внимание =)