#javascript #jquery #plugins #jquery-plugins #jquery-pagination
#javascript #jquery #Плагины #jquery-плагины #jquery-разбивка на страницы
Вопрос:
Я пытаюсь использовать плагин разбиения на страницы для разбиения на страницы результатов поиска некоторых элементов. К сожалению, демонстрации и документация не очень понятны, когда дело доходит до отображения более одного результата. По крайней мере, я так чувствовал…
Итак, в любом случае, кажется, что мне нужно написать свой собственный пропуск и использовать код внутри функции обратного вызова, чтобы получить нужный мне результат. Вот что у меня получилось на данный момент:
function setupPagination(num_items) {
var num_entries = $('#hiddenItemsContainer div.indexItem').length;
// Create pagination element
$("#paginationWidget").pagination(num_entries, {
current_page: 0,
items_per_page: num_items,
num_display_entries: 5,
next_text: 'Next',
prev_text: 'Prev',
callback: pageselectCallback,
num_edge_entries: 1
});
}
function pageselectCallback(page_index, jq){
var num_entries = $('#hiddenItemsContainer div.indexItem').length;
var items_per_page = $('#ItemsPerPage').val();
var newcontent = ($('#hiddenItemsContainer div.indexItem').slice(Math.min((page_index 1) * items_per_page), items_per_page)).clone();
console.log(newcontent);
// Replace old content with new content
$('#itemsContainer').empty().html(newcontent);
return false;
}
Я продолжаю получать пустой массив в качестве значения newContent
. Значит, что-то не так в том, как я использую slice
функцию.
Есть мысли?
Обновить:
Проблема решена. Я, наконец, понял это! Вот решение:
function pageselectCallback(page_index, jq){
console.log(page_index);
var num_entries = $('#hiddenItemsContainer div.indexItem').length;
var items_per_page = $('#ItemsPerPage').val();
var newcontent = ($('#hiddenItemsContainer div.indexItem').slice(Math.min(page_index * items_per_page), ((page_index 1) * items_per_page))).clone();
console.log(newcontent);
// Replace old content with new content
$('#itemsContainer').html(newcontent);
return false;
}
Но еще одна вещь… Есть ли способ передать items_per_page
значение функции обратного вызова? Не имеет смысла сохранять его в скрытом поле только для того, чтобы я мог получить к нему доступ…
Комментарии:
1. Что вы подразумеваете под отображением более одного элемента? Под этим я понимаю количество элементов на странице, но в этом плагине уже есть эта опция, и вы ее используете… Можете ли вы привести пример в скрипте?
2. @Andre: Проблема в том, что плагин использует эту опцию внутри для отображения только виджета разбиения на страницы. На самом деле это не использует это как количество элементов, фактически отображаемых в результирующем div.
3. Да, это так. Вы можете увидеть, как это работает в официальной демонстрации: d-scribe.de/webtools/jquery-pagination/demo/demo_options.htm .
4. @Andre: Нет, посмотри на исходный код. Вы увидите, что автор извлекает количество элементов, которые будут отображаться, из значения текстового поля.