2009-10-06 32 views
8

Hy vọng rằng đây là thứ dễ sửa chữa. Tôi đang gặp sự cố khi hiểu plugin jQuery Pagination.Plugin jQuery Pagination

Về bản chất, tất cả những gì tôi đang cố gắng làm là tải tệp PHP và sau đó phân trang kết quả. Tôi đang cố gắng để đi ra khỏi ví dụ của họ, nhưng tôi không mang lại kết quả mà tôi đang tìm kiếm.

Đây là 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); 
     });  

Dưới đây là HTML của tôi (sau khi PHP đã được nạp):

 <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> 

Về cơ bản, tôi đang cố gắng để hiển thị "3" mặt hàng trên mỗi trang, nhưng điều này không hoạt động. Tôi giả định rằng một nơi nào đó, tôi sẽ cần phải tạo ra một vòng lặp for trong JS của tôi, nhưng tôi đang bối rối về cách làm như vậy. The documentation can be found here.

+0

Hey người đàn ông tôi có vấn đề tương tự như bạn Nhưng tôi đã cố gắng làm tất cả những kịch bản ở đây nhưng tôi đã thực hiện nó thông qua Hy vọng điều này giúp cho vấn đề của bạn http://bit.ly/free-pagination nó chỉ tùy chỉnh kịch bản không plugsin nhưng thực sự hữu ích –

Trả lời

18

Bạn thậm chí không cần sử dụng vòng lặp for, chỉ cần sử dụng phương thức slice() của jQuery và một chút toán học.

tôi đã tổ chức một bản demo làm việc trên JS Bin: http://jsbin.com/upuwe (Editable qua http://jsbin.com/upuwe/edit)

Dưới đây là các mã chỉnh sửa:

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); 
} 
+0

Brian, đó là tuyệt vời. Cảm ơn rất nhiều vì đã chỉ ra phương thức slice()! – Dodinas

+0

@Dodinas ... Phương thức sao chép() này có hoạt động cho bạn trong IE ...? – SpikETidE

+0

@brainpeiris tôi đang đấu tranh với plugin phân trang http://stackoverflow.com/questions/2505435/good-jquery-pagination-plugin-to-use-with-json-data và http://stackoverflow.com/questions/ 2523075/tạo-số trang-sử dụng-javascript-jquery –