Баг с пагинацией jquery.simplePagination
Нужна помощь в работе с этим плагином, все коды ниже. Есть несколько багов, которые нужно пофиксить (отметил комметариями). При удалении перебрасывает на первую страницу, хотя удаляет нужный элемент. Тоже самое при очистке поиска, должно оставаться на той странице, с которой пришли, а отправляет на первую. В теории, я должен как-то обрабатывать параметр с индексом текущей страницы и передавать его в функцию пагинации, но как это реализовать на практике? Бьюсь два дня, не получается.
Код плагина: https://github.com/flaviusmatis/simplePagination.js/blob/master/jquery.simplePagination.js
Мой код:
$(document).ready(function () {
// <!-- Pagination -->
function Paginate() {
let items = $(".row .card-block");
let numItems = items.length;
const perPage = 8;
items.slice(perPage).hide();
$('.pagination').pagination({
items: numItems,
itemsOnPage: perPage,
onPageClick: function (pageNumber) {
let showFrom = perPage * (pageNumber - 1);
let showTo = showFrom + perPage;
items.hide().slice(showFrom, showTo).show();
}
});
}
// Подсчет пагинации при запуске приложения
Paginate()
//<!-- Clear button disable -->
$('input[type="text"]').keyup(function () {
if ($(this).val() != '') {
$('.btn-clear').prop('disabled', false);
$('#searchBtn').prop('disabled', false);
} else {
$('.btn-clear').prop('disabled', true);
$('#searchBtn').prop('disabled', true);
}
});
// <!-- Remove item -->
$('.remove').click(function () {
// Нужно добавить проверку на пустую страницу и переход на первую
**// Перебрасывает на первую страницу при удалении со второй**
$(this).closest('.card-block').remove();
$('.card-block').css("display", "block")
Paginate()
});
// <!-- Search -->
$('#searchBtn').click(function () {
$('.btn-clear').prop('disabled', false);
let value = $('#searchValue').val().toLowerCase();
$('.card-title').each(function () {
let card = $(this).closest('.card-block');
let text = $(this).text().toLowerCase();
text.includes(value) ? card.show() : card.hide();
});
// Пагинация при поиске (баг при результате > 8)
$('.pagination').pagination();
});
$('.btn-clear').click(function () {
$('.btn-clear').prop('disabled', true);
$('.card-block').show()
// Пересчет пагинации при нажатии на Clear
**// Перебрасывает на первую страницу, а не остается на текущей**
Paginate()
})
});
P.S. Если нужно, полный код проекта: https://github.com/twainprod/online-store