Skip to content

Instantly share code, notes, and snippets.

@Elvinz
Created January 17, 2020 10:34
Show Gist options
  • Save Elvinz/cf20e6f1aca9fb11f358c2211d1e6735 to your computer and use it in GitHub Desktop.
Save Elvinz/cf20e6f1aca9fb11f358c2211d1e6735 to your computer and use it in GitHub Desktop.

Revisions

  1. Elvinz created this gist Jan 17, 2020.
    41 changes: 41 additions & 0 deletions bitrix-ajax-load-elements
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    Создать свой шаблон компонента постраничной навигации bitrix:system.pagenavigation
    <?if($arResult["NavPageCount"] > 1):?>
    <?if ($arResult["NavPageNomer"]+1 <= $arResult["nEndPage"]):?>
    <?
    $plus = $arResult["NavPageNomer"]+1;
    $url = $arResult["sUrlPathParams"] . "PAGEN_1=" . $plus
    ?>
    <div class="load_more" data-url="<?=$url?>">
    Показать еще
    </div>
    <?else:?>
    <div class="load_more">
    Загружено все
    </div>
    <?endif?>
    <?endif?>
    Скрипт в script.js
    $(document).ready(function(){
    $(document).on('click', '.load_more', function(){
    var targetContainer = $('.loadmore_wrap'), // Контейнер, в котором хранятся элементы
    url = $('.load_more').attr('data-url'); // URL, из которого будем брать элементы
    if (url !== undefined) {
    $.ajax({
    type: 'GET',
    url: url,
    dataType: 'html',
    success: function(data){
    // Удаляем старую навигацию
    $('.load_more').remove();
    var elements = $(data).find('.loadmore_item'), // Ищем элементы
    pagination = $(data).find('.load_more');// Ищем навигацию
    targetContainer.append(elements); // Добавляем посты в конец контейнера
    targetContainer.append(pagination); // добавляем навигацию следом
    }
    })
    }
    });
    });
    В шаблоне компонента списка новостей news.list до цикла задать класс обёртки loadmore_wrap
    В цикле присвоить класс элементу loadmore_item
    В настройках компонента выбрать вышесозданный шаблон постраничной навигации