• 自己写的分页控件


    
    
    /************************************************************************
    *************************************************************************
    case Name :       	pager - jQuery Plugin
    case Revison :    	1.1
    case Date : 		2014-6-23
    case Author:        76362124@qq.com
    case Support:    	FF, IE7, IE8, IE9, IE10, Chrome, Others(unknown)
    case License :		N/A
    *************************************************************************/
    
    (function ($) {
        $.fn.pager = function (opt) {
            var defaults = {
                currIndex: 1,                   //当前页面index
                totalCount: 0,                  //数据总数
                pageSize: 20,                   //页面容量
                isinputpage: true,              //是否显示页面输入框
                onPaging: null,                 //翻页事件
                cssClasses: 'pagerDistinguish',  //css classes
                ulClass: 'pager'
            }
            var options = $.extend(defaults, opt);
            var maxPageIndex = parseInt(options.totalCount / options.pageSize) + (options.totalCount % options.pageSize >= 1 ? 1 : 0);
    
            //跳转页
            var topage = function (index) {
                index = isNaN(index) ? 1 : parseInt(index);
                //当为index为空是 isNaN(index)为false
                if (isNaN(index))
                    index = 1;
                if (index < 1 || index > maxPageIndex)
                    return;
                options.currIndex = index;
                if ($.isFunction(options.onPaging)) {
                    options.onPaging(index);
                }
                buildindexs($(this).parents('.pagerDistinguish'));
            }
            //页码a click事件
            var pagerhandle = function (e) {
                var index = e.data;
                topage(index);
            }
            //上一页
            var toprepage = function () {
                topage(options.currIndex - 1);
            }
            //下一页
            var tonextpage = function () {
                topage(options.currIndex + 1);
            }
            //go button
            var gobtnclick = function () {
            var $this = $(this).parents('.pagerDistinguish');
                topage($this.find("#inptPageIndex").val());
            }
            //分页-输入控制
            var inputPageChange = function () {
                var code = event.keyCode;
                var $that = $(this);
                //Enter
                if (code == 13) {
                    topage($that.val());
                    event.returnValue = false;
                }
                //NaN
                else if (code < 48 || code > 57) {
                    event.returnValue = false;
                }
            }
            //创建indexs
            var buildindexs = function ($this) {
                $this.find('.pageLink').remove();
                $this.find('#inptPageIndex').val(options.currIndex);
                var nextpage = $this.find('#nextpage');
                var startIndex = parseInt(options.currIndex / 10) * 10 + 1 + (options.currIndex % 10 == 0 ? -10 : 0);
                var endIndex = startIndex + 10;
                if (options.currIndex > 10) {
                    var prepageslink = $("<a class='pageLink' href='###'style='margin-right:5px;'>...</a>");
                    prepageslink.bind('click', startIndex - 1, pagerhandle);
                    prepageslink.insertBefore(nextpage);
                }
                for (var i = startIndex; i < endIndex && i <= maxPageIndex; i++) {
                    if (i != options.currIndex) {
                        var pagelink = $("<a class='pageLink' href='###'style='margin-right:5px;'>" + i + "</a>");
                        pagelink.insertBefore(nextpage);
                        pagelink.bind('click', i, pagerhandle);
                    }
                    else {
                        $("<span class='pageLink' style='margin-right:5px;font-weight:Bold;color:red;'>" + i + "</span>").insertBefore(nextpage);
                    }
                }
                if (maxPageIndex - endIndex >= 0) {
                    var nextpageslink = $("<a class='pageLink' href='###'style='margin-right:5px;'>...</a>");
                    nextpageslink.bind('click', startIndex + 10, pagerhandle);
                    nextpageslink.insertBefore(nextpage);
                }
            }
            //初始化pager
            var buildpager = function ($this) {
                if (options.totalCount / options.pageSize > 1) {
                    $this.empty();
                    $this.show();
                    $this.attr('class', $this.attr('class') + ' ' + ($this.attr('class').indexOf(options.cssClasses) >= 0 ? '' : options.cssClasses));
                    var ul = $("<ul></ul>");
                    ul.attr('class', options.ulClass);
                    ul.appendTo($this);
                    var divpager = $("<div></div>");
                    divpager.appendTo(ul);
    
                    var firstpage = $("<a href='###' style='margin-right: 5px;'><<</a>");
                    firstpage.bind('click', 1, pagerhandle);
                    var prepage = $("<a href='###' style='margin-right: 5px;'><</a>");
                    prepage.bind('click', toprepage);
                    var nextpage = $("<a id='nextpage' href='###' style='margin-right: 5px;'>></a>");
                    nextpage.bind('click', tonextpage);
                    var lastpage = $("<a href='###' style='margin-right: 5px;'>>></a>");
                    lastpage.bind('click', maxPageIndex, pagerhandle);
    
                    firstpage.appendTo(divpager);
                    prepage.appendTo(divpager);
                    nextpage.appendTo(divpager);
                    lastpage.appendTo(divpager);
                    if (options.isinputpage) {
                        var iptpage = $("<input type='text' id='inptPageIndex' value='1' style=' 30px;'/>");
                        iptpage.appendTo(divpager);
                        iptpage.bind('keypress', inputPageChange);
                        iptpage.bind('keyup', function () {
                            this.value = this.value.replace(/[D]/g, '')
                        });
                        var gotobtn = $("<input type='button' value='go' class='ui-button ui-widget ui-state-default ui-corner-all' role='button' aria-disabled='false'>");
                        gotobtn.bind('click', gobtnclick);
                        gotobtn.appendTo(divpager);
                    }
                    buildindexs($this);
                }
                else {
                    $this.hide();
                }
            }
            return this.each(function () {
                buildpager($(this));
            });
        };
    })(jQuery);
    
    
    

      


    初始化
    1 //初始化分页
    2                     $('.pagination').pager({ totalCount: 100, pageSize: 20, pageIndex: 1, onPaging: function (index) {
    3                         pageIndex = index;
    4                         if (!validFields()) {
    5                             return false;
    6                         }
    7                         getLogs();
    8                     }

    div

    1 <!-- pagination -->
    2                 <div class="pagination">
    3                 </div>

    效果

  • 相关阅读:
    JavaScript基础学习(三)—数组
    JavaScript基础学习(二)—JavaScript基本概念
    JavaScript基础学习(一)—JavaScript简介
    HTML基础学习(二)—CSS
    HTML基础学习(一)—HTML
    JDBC基础学习(六)—数据库连接池
    JDBC基础学习(五)—批处理插入数据
    js_页面关闭beforeunload事件
    css3_box-shadow使用记录
    jq_$.extend和$.fn.extend插件开发和方法的封装
  • 原文地址:https://www.cnblogs.com/ziyeyimeng/p/3615474.html
Copyright © 2020-2023  润新知