Добрый день! Подскажите пожалуйста, как можно реализовать закрытие открытого блока с данными по средствам AJAX.. То есть, есть страница, на которой через AJAX (по средствам API сервера), при нажатии на ссылку, в нужном блоке div выводится содержимое второй странички, так вот, как сделать так, чтоб при повторном нажатии на туже ссылку div блок исчезал?
AJAX используется таким способом: <?=CAjax::GetLink('second_page.php', 'SEcond page', 'ajax_container');?> при нажатии на ссылку, под ней в блоке подгружается нужная информация из другого файла..
Хм, а если использовать jquery, тогда зачем использовать Битрикс API для аякса? Можно на jquery и сами запросы формировать. Как я понимаю, смысл Битрикс AJAX API именно в экономии ресурсов.
Понятно, что в браузере у клиента. Но так и непонятно зачем юзать Битрикс АПИ, если все равно подцеплять джквери. Наверное должны быть еще какие-то способы скрыть блок без использования джквери.
Если следовать вашей логике, можно наверное и без подгрузки библиотеки джквери с помощью js и css присвоить стиль блокам display:none и всё. Но здесь наверное правильнее не просто скрывать блок при клике на него, а загружать ajax-ом пустой блок. Ведь аякс перегружается с каждым кликом, значит нужно просто добиться загрузку пустого блока - так будет рациональнее.
Если использовать метод автора, надо как-то изменять ссылку с параметром open на close по которой загружается аякс содержимое. А в php скрипте который грузит Getlist-ом данные сделать условие проверки - если в url стоит параметр close - то вывести пустой блок. Но тогда нужно добиться изменения вида ссылки при клике на неё, что стандартный API AJAX Битрикса вроде не позволяет. В общем, может есть еще какие-то вменяемые решения?
Во-первых: API - это обертка. В большинстве случаев обертки создаются для удобств и безопасности ядра системы. Во-вторых: использовать Ajax так, как написали Вы - все равно что возить картошку на Lamborghini.
Хорошо, значит вы все-таки предлагаете юзать jquery наряду с Битрикс аякс API и скрывать блоки с помощью css и считаете это наиболее эффективным методом?
Хотя не понимаю в чем здесь картошка на ламборджини. Подумайте сами: инфы на странице можно с помощью аякса нараскрывать очень много. Можно нараскрывать настолько много списков, что даже скролл в браузере может начать тормозить. Если потом тупо скрыть display:none эти блоки - на самом деле они никуда с этой страницы не денутся и тормоза вероятнее всего тоже останутся. Поэтому как раз по-моему логичнее аяксом переподгружать пустые области нежели хайдить их. Таким образом на странице всегда будет подгружена только та инфа которая нужна.