Плагин jQuery Pagination - PullRequest
       13

Плагин jQuery Pagination

8 голосов
/ 06 октября 2009

Надеюсь, это будет легко исправить. У меня возникли некоторые проблемы с пониманием плагина jQuery Pagination .

По сути, все, что я пытаюсь сделать, это загрузить файл PHP, а затем разбить результаты на страницы. Я пытаюсь уйти от их примера, но я не даю результатов, которые ищу.

Вот код JavaScript:

 function pageselectCallback(page_index, jq){
            var new_content = $('#hiddenresult div.result:eq('+page_index+')').clone();
            $('#Searchresult').empty().append(new_content);
            return false;
        }
        function initPagination() {
            var num_entries = $('#hiddenresult div.result').length;
            // Create pagination element
            $("#Pagination").pagination(num_entries, {
                num_edge_entries: 2,
                num_display_entries: 8,
                callback: pageselectCallback,
                items_per_page:3
            });
         }      
        $(document).ready(function(){      
            $('#hiddenresult').load('load.php', null, initPagination);
        });      

Вот мой HTML (после загрузки PHP):

        <div id="Pagination" class="pagination"> </div>
        <br style="clear:both;" />
        <div id="Searchresult"> </div>

       <div id="hiddenresult" style="display:none;"> 
         <div class="result">Result #1</div>
         <div class="result">Result #2</div>
         <div class="result">Result #3</div>
         <div class="result">Result #4</div>
         <div class="result">Result #5</div>
         <div class="result">Result #6</div>
         <div class="result">Result #7</div>
       </div>

В основном, я пытаюсь показать "3" элементов на странице, но это не работает. Я предполагаю, что где-то мне понадобится создать цикл for в моем JS, но я не совсем понимаю, как это сделать. С документацией можно ознакомиться здесь .

1 Ответ

18 голосов
/ 06 октября 2009

Вам даже не нужно использовать цикл for, просто используйте метод jQuery slice() и немного математики.

Я разместил рабочую демонстрацию на JS Bin: http://jsbin.com/upuwe (редактируется через http://jsbin.com/upuwe/edit)

Вот модифицированный код:

var pagination_options = {
  num_edge_entries: 2,
  num_display_entries: 8,
  callback: pageselectCallback,
  items_per_page:3
}
function pageselectCallback(page_index, jq){
  var items_per_page = pagination_options.items_per_page;
  var offset = page_index * items_per_page;
  var new_content = $('#hiddenresult div.result').slice(offset, offset + items_per_page).clone();
  $('#Searchresult').empty().append(new_content);
  return false;
}
function initPagination() {
  var num_entries = $('#hiddenresult div.result').length;
  // Create pagination element
  $("#Pagination").pagination(num_entries, pagination_options);
}
...