Использование:
`let paginator = $(container).pjax({
pagination: '.pagination-container .pagination a',
lazyLoad: '.pagination-container .load-more',
lazyContainer: '.pagination-container',
query: '',
params: {},
specialParams: {},
method: 'GET',
cache: {
enabled: true,
tll: 60
},
callbacks: {
beforeLoad: function(paginator){ /* Коллбек возвращает инстанс пагинатора, можно использовать его методы, например setParams() */},
afterLoad: function(paginator){},,
onError: function(paginator){},
}
});`
Обязательные парметры:
- container - элемент контейнера, содержимое которого будет изменяться. Не является параметром :)
- pagination - элемент постранички, имеющий аттрибут href, обязателен т.к на него вешается событие click, обязательно должен иметь href
Не обязательные параметры:
- lazyLoad - элемент ссылка, кнопка "показать еще", служит для динамической подгрузки данных в существующий контейнер. Может быть любым элементом, но должен иметь аттрибут 'href'. Должно использоваться совместно с lazyContainer
- lazyContainer - элемент контейнер, в который будет подгружаться содержимое полученное от сервера после нажатия по lazyLoad элементу
- lazyDynamic - true/false. Симулирует клик по элементу LazyLoad при прокрутке до этого элемента. Соотв-но два предыдущие параметра обязательны, но lazyLoad элемент можно скрыть с помощью css. Не будет работать если элементы находятся внутри контейнера с overflow: scroll
- lazyDynamicTimeout - таймаут после которого срабатывает lazyDynamic
- lazyDynamicDelayedStart - включает отложенный старт постранички (ждет клик по кнопке "еще" от юзера)
- query - путь к серверу, если указать, то при инициализации плагина будет загружено содержимое с сервера ajax методом ( в противном случае предполагается что контент уже отрендерен на странице )
- params - параметры запроса, в виде обьекта, {key1:value1, key2:value2} преобразуется к ?key1=value1&key2=value2
- specialParams - специальные параметры, которые постоянно будут добавляться к запросу. Может использоваться для передачи на сервер информации о том что данные передаются через ajax.
- method - метод, по умолчанию GET.
- cache.enabled - включает или отключает кэширование страниц
- cache.tll - устанавливает время жизни записи в кэш. Значение в секундах
Коллбэки: callbacks.beforeLoad - перед загрузкой данных. Первым аргументом получает обьект pjax со всеми свойствами. callbacks.afterLoad - перед загрузкой данных. Аналогично beforeLoad callbacks.onError - в случае серверной ошибки, когда код ответа != 2xx. Первый аргумент - обьект с ошибкой.
Методы:
- Для изменения параметров после инициализации плагина:
$(container).pjax('setParams', params, reload);
Аргумент params - обьект с параметрами, обьект аналогичный параметрам плагина описаный выше.
Пример использования:
$('#container').pjax('setParams', { query: '/load_example_list', params: {page: 3} });
загрузит содержимое /load_example_list?page=3 в контейнер #container
paginator.setParams({ lazyLoad: true });
включит ленивую подгрузку
- Получить сам pjax обьект можно так:
$('#container').data('pjax');
так же он возвращается при инициализации и в качестве первого аргумента в коллбэках