Доброго времени суток! На форуме поднимался как-то уже вопрос о том, как, подтягивая компоненты битрикса по аяксу вытягивать также и скритп, который подключается к компоненту и файл стилей компонента. Тогда решения данного вопроса нормально не было найдено.
И вот теперь есть решение: Более подробно изучил работу с BX.ajax
Сильно расписывать нет времени, посему, сразу готовые наработки.
Итак, есть какой-то компонент. У данного компонента есть файл result_modifier.php
Т.о. в файл /ajax.php размещаем подключение компонента. Указанным запросом получаем данный компонент и помещаем его в контейнер с id="result_container". Все!
В результате файлы script.js и style.css, подключаемые вместе с компонентом, будут также подключаться и при запросе компонента по технологии ajax.
Kryachek Mikhail, цель была не разобраться с аяксом в такой серьезной библиотеке, как JQuery, а разобраться в созданной специально для битрикса JS-библиотеке. К тому же, когда пробовали данный функционал реализовать средствами JQuery, эмуляция события загрузки страницы не отрабатывала. А в битрикосовом функционале для этого имеется специальный параметр:
emulateOnload: true,
Я даже не сомневаюсь, что средствами чистого JS данный функционал возможно реализовать. Скажу даже больше - это почти удалось. Но! при добавлении еще скриптов, аяксов (а ситуация именно в том, чтобы загружать по аяксу битриксовые компоненты, внутри которых есть свои вызовы аякса и так может быть бесконечно) вносить правки в разработанный ранее функционал стало достаточно сложно. А в описанный функционал схема вписывается просто отлично:)
Каждому конечно свое, но мне лично кажется несколько не практичным использование "мешанины" 2х, библиотек, в особенности когда одна из них довольно плохо документирована, а вторая позволяет сделать все тоже самое, порою даже намного проще.
Kryachek Mikhail, ну разработчики документации за последние полгода сделали колоссальный объем работ. скоро и до JS-библиотеки доберутся. Частично она уже описана. Примерами пока сами разработчики и наполняем. "Мешанина 2-х библиотек" - это из-за недостатка знаний по BX
Алексей Попович , Библиотеке BX.Ajax наверное года 4+ уже, что же на счет замен, то:
$(document).ready(function(){ >>> BX.ready(function(){}); или BX(function(){});
$('span#TEST') >>> Аналогов нет, в BX библиотеке очень слабая модель селекторов, к сожалению, хотя если у ва TEST это ID а ID по хорошему должен быть уникален, то можно сделать так BX('TEST')...
$(data).appendTo('#result_container'); >>> Что-то вроде BX.adjust(BX('result_container'), {html: data}); правда это заменит весь контент в node с ID=result_container
Пример подключения скриптов для ajaxа - хорошая штука. Но столкнулся ещё с проблемой инициализации битриксовых скриптов после ajax-загрузки: в компоненте catalog.section не срабатывают стандартные действия (добавить в корзину, добавить в сравнение). При этом сами скрипты подгрузились.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».