Добрый день! Подскажите пожалуйста, как можно реализовать закрытие открытого блока с данными по средствам 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 эти блоки - на самом деле они никуда с этой страницы не денутся и тормоза вероятнее всего тоже останутся. Поэтому как раз по-моему логичнее аяксом переподгружать пустые области нежели хайдить их. Таким образом на странице всегда будет подгружена только та инфа которая нужна.
ну можно тогда через js не просто скрывать блок (display: none), а именно очищать его document.getElementById('block').innerHTML = ""; это не проблема..
то есть через такую конструкцию: <?=CAjax::GetLink('second_page.php', 'SEcond page', 'ajax_container');?> подобное не сделать??