Pagination.js - 可定制的分页组件


MIT
跨平台
JavaScript

软件简介

Pagination.js 是一个简单、可定制的分页组件。

paginationjs.com

Usage

Normal

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 195],
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Only page

numbers

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 100],
    pageSize: 5,
    showPrevious: false,
    showNext: false,
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Show

“go” input & button

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 40],
    pageSize: 5,
    showGoInput: true,
    showGoButton: true,
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

[](https://github.com/superRaytin/paginationjs#auto-hide-previous--next-

button)Auto hide previous & next button

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 35],
    pageSize: 5,
    autoHidePrevious: true,
    autoHideNext: true,
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Mini

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 50],
    pageSize: 5,
    showPageNumbers: false,
    showNavigator: true,
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

[](https://github.com/superRaytin/paginationjs#asynchronous-or-

jsonp)Asynchronous or JSONP

$('#demo').pagination({
    dataSource: 'https://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?',
    locator: 'items',
    totalNumber: 120,
    pageSize: 20,
    ajax: {
        beforeSend: function(){
            dataContainer.html('Loading data from flickr.com ...');
        }
    },
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Specify

default

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 35],
    pageSize: 5,
    pageNumber: 3,
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Format

result data

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 100],
    pageSize: 8,
    formatResult: function(data){
        var result = [];
        for(var i = 0, len = data.length; i < len; i++){
            result.push(data[i] + ' - good guys');
        }
        return result;
    },
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

[](https://github.com/superRaytin/paginationjs#another-format-result-

data)Another format result data

$('#demo').pagination({
    dataSource: [{a :1}, {a :2}, {a :3}, {a :4}, ... , {a :50}],
    pageSize: 8,
    formatResult: function(data){
        for(var i = 0, len = data.length; i < len; i++){
            data[i].a = data[i].a + ' - bad guys';
        }
    },
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Format

navigator

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 15],
    pageSize: 5,
    showNavigator: true,
    formatNavigator: '<span style="color: #f00"><%= currentPage %></span> st/rd/th, <%= totalPage %> pages, <%= totalNumber %> entries',
    position: 'top',
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})

Format “go”

input

$('#demo').pagination({
    dataSource: [1, 2, 3, 4, 5, 6, 7, ... , 25],
    pageSize: 5,
    showGoInput: true,
    showGoButton: true,
    formatGoInput: 'go to <%= input %> st/rd/th',
    callback: function(data, pagination){
        // template method of yourself
        var html = template(data);
        dataContainer.html(html);
    }
})