jquery-ajax-pager 一个页面内多分页对象

格拉 2017-03-15 03:19:41
如题,一个页面上有多个分页对象的时候用jquery-ajax-pager怎么搞,求大神
...全文
623 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41175809 2017-11-25
  • 打赏
  • 举报
回复
stringFormat()怎么定义的
格拉 2017-08-28
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
引用 3 楼 clxcxx 的回复:
[quote=引用 2 楼 jxbn0303 的回复:] 哥们, 我也碰到这个问题了,求解决。
没办法 ,只能定义多个sjPager
换jquery.pagination.js,你这个明显就是单实例,无法创建多个,只能sjPager重名了 http://www.jq22.com/jquery-info5697 Web开发学习资料推荐 jqGrid中文API jqGrid事件[/quote]已经换了
Go 旅城通票 2017-08-25
  • 打赏
  • 举报
回复
引用 3 楼 clxcxx 的回复:
引用 2 楼 jxbn0303 的回复:
哥们, 我也碰到这个问题了,求解决。
没办法 ,只能定义多个sjPager
换jquery.pagination.js,你这个明显就是单实例,无法创建多个,只能sjPager重名了 http://www.jq22.com/jquery-info5697

Web开发学习资料推荐
jqGrid中文API
jqGrid事件
格拉 2017-08-25
  • 打赏
  • 举报
回复
引用 2 楼 jxbn0303 的回复:
哥们, 我也碰到这个问题了,求解决。
没办法 ,只能定义多个sjPager
大彬 2017-08-18
  • 打赏
  • 举报
回复
哥们, 我也碰到这个问题了,求解决。
格拉 2017-03-15
  • 打赏
  • 举报
回复
(function (window, $) {
var sjPager = window.sjPager ={
        opts: {
            pageSize: 10,
            preText: "上一页",
            nextText: "下一页",
            firstText: "首页",
            lastText: "尾页",
            shiftingLeft: 3,
            shiftingRight: 3,
            preLeast: 2,
            nextLeast: 2,
            showFirst: true,
            showLast: true,
            url: "",
            type: "POST",
            dataType: "JSON",
            async:false, //支持 同步 参数
            searchParam: {},
            beforeSend: null,
            success: null,
          //complete: null,
            error: function() {
                alert("抱歉,请求出错,请重新请求!");
            },
            pageIndex: 1,
            totalCount: 0,
            totalPage: 0
        },
        pagerElement: null,
        commonHtmlText: {
            spanHtml: "<span class='{0}'>{1}</span>",
            pageIndexHtml: "<a href='javascript:void(0)' onclick='sjPager.doPage({0},{1},{2})'>{3}</a>",
            rightHtml: "<span class='text'>   共 {0} 页, 到第</span> <input type='text' id='txtToPager' value={1} /><span class='text'>页</span> <button id='btnJump' onclick='sjPager.jumpToPage(this.opts.searchParam,this.parentElement);return false;' >跳转</button>",
            clearFloatHtml: "<div style='clear:both;'></div>",
            stringEmpty: ""
        },
        init: function (obj,op) {
            var _self =this;// new sjPager(op);

            _self.opts = $.extend({}, _self.opts, op);
            _self.pagerElement = obj;
           // _self.pagerElement = _self.opts.pagerElement;
            _self.doPage(_self.opts.pageIndex, _self.opts.pageSize, _self.opts.searchParam);

            return _self;//.opts;
        },
        doPage: function (index, pageSize, searchParam) {
           // var parent=$parentDiv.parentElement;
            var _self = this;
            // _self.pagerElement=obj;
            // _self.opts.pagerElement=obj;
            _self.opts.pageIndex = index;
            _self.opts.pageSize = pageSize;
            _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            $.ajax({
                type: _self.opts.type,
                data: $.extend(_self.opts.searchParam || {}, {
                	page: _self.opts.pageIndex,
                	rows: _self.opts.pageSize || 10
                }),
                dataType: _self.opts.dataType,
                url:_self.opts.url,
                async: _self.opts.async, //支持 同步
                beforeSend: function () {
                	if( $.isFunction(_self.opts.beforeSend)){
                		_self.opts.beforeSend();
                	};
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    _self.opts.error(XMLHttpRequest, textStatus, errorThrown);
                },
                success: function (data) {
                    _self.opts.success(data);
                    //后台返回数据格式:{"total":0,"items":[]}
                    _self.opts.totalCount = data.result.totalRow;
                    _self.getTotalPage();
                    if (_self.opts.totalCount > 0 && _self.opts.pageIndex > 0) {
                        var pageTextArr = new Array;

                        _self.createPreAndFirstBtn(pageTextArr);
                        _self.createIndexBtn(pageTextArr);
                        _self.createNextAndLastBtn(pageTextArr);
                        _self.renderHtml(pageTextArr);
                    }
                }
                /*,
                complete: function () {
                	if( $.isFunction(_self.opts.complete)){
                		 _self.opts.complete();
                	}
                }*/
            });
        },
        getTotalPage: function() {
            var _self = this;
            // _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            _self.opts.totalPage = Math.ceil(_self.opts.totalCount / _self.opts.pageSize);
        },
        createPreAndFirstBtn: function (pageTextArr) {
            var _self = this;
            // _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            if (_self.opts.pageIndex == 1) {
                if (_self.opts.showFirst)
                    pageTextArr.push(_self.createSpan(_self.opts.firstText, 'disenable'));

                pageTextArr.push(_self.createSpan(_self.opts.preText, 'disenable'));
            } else {
                if (_self.opts.showFirst) {
                    pageTextArr.push(_self.createIndexText(1, _self.opts.firstText));
                }

                pageTextArr.push(_self.createIndexText(_self.opts.pageIndex - 1, _self.opts.preText));
            }
        },
        createNextAndLastBtn: function (pageTextArr) {
             var _self = this;
            // _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            if (_self.opts.pageIndex == _self.opts.totalPage) {
                pageTextArr.push(_self.createSpan(_self.opts.nextText, 'disenable'));

                if (_self.opts.showLast)
                    pageTextArr.push(_self.createSpan(_self.opts.lastText, 'disenable'));
            } else {
                pageTextArr.push(_self.createIndexText(_self.opts.pageIndex + 1, _self.opts.nextText));
                if (_self.opts.showLast)
                    pageTextArr.push(_self.createIndexText(_self.opts.totalPage, _self.opts.lastText));
            }
        },
        createIndexBtn: function (pageTextArr) {
            /*
                前:当前页 > 偏移量 + 至少保留 + 1
                后:当前页 < 总页码 - 偏移量 - 至少保留
            */

             var _self = this;
            // _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            var shiftingLeftStart = _self.opts.shiftingLeft + _self.opts.preLeast + 1;
            var shiftingRightStart = _self.opts.totalPage - _self.opts.shiftingRight - _self.opts.nextLeast - 1;

            /*页码*/
            if (_self.opts.pageIndex > shiftingLeftStart) {
                for (i = 1; i <= _self.opts.preLeast; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }

                pageTextArr.push(_self.createSpan('...'));

                for (i = _self.opts.pageIndex - _self.opts.shiftingLeft; i < _self.opts.pageIndex; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }

            } else {
                for (i = 1; i < _self.opts.pageIndex; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }
            }

            pageTextArr.push(_self.createSpan(_self.opts.pageIndex, 'current'));

            if (_self.opts.pageIndex <= shiftingRightStart) {

                for (i = _self.opts.pageIndex + 1; i < _self.opts.pageIndex + 1 + _self.opts.shiftingRight; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }

                pageTextArr.push(_self.createSpan('...'));

                for (i = _self.opts.totalPage - 1; i <= _self.opts.totalPage; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }

            } else {
                for (i = _self.opts.pageIndex + 1; i <= _self.opts.totalPage; i++) {
                    pageTextArr.push(_self.createIndexText(i, i));
                }
            }
        },
        renderHtml: function (pageTextArr) {
            var _self = this;
            // _self.opts.searchParam = searchParam;
            // _self.pagerElement=$('#'+searchParam.div);
            // _self.opts.pagerElement=$('#'+searchParam.div);
            var pageText = _self.commonHtmlText.stringEmpty;

            for (var i = 0; i < pageTextArr.length; i++) {
                pageText += pageTextArr[i];
            }

            _self.pagerElement.html(pageText).append(stringFormat(_self.commonHtmlText.rightHtml, _self.opts.totalPage, _self.opts.pageIndex)).append(_self.commonHtmlText.clearFloatHtml);
        },
        createSpan: function (text, className) {
            var _self = this;

            return stringFormat(_self.commonHtmlText.spanHtml, className ? className : _self.commonHtmlText.stringEmpty, text);
        },
        createIndexText: function (index, text) {
            var _self = this;
            return stringFormat(_self.commonHtmlText.pageIndexHtml, index, _self.opts.pageSize, JSON.stringify(_self.opts.searchParam), text);
        },
        jumpToPage: function() {
            var _self = this;
            var $txtToPager = $("#txtToPager", _self.pagerElement);
            var index = parseInt($txtToPager.val());

            if (!isNaN(index) && index > 0 && index <= _self.opts.totalPage) {
                _self.doPage(index, _self.opts.pageSize, _self.opts.searchParam);
            } else {
                $txtToPager.focus();
            }
        }
    }
 $.fn.ajaxPager = function (option) {
        return sjPager.init($(this),option);
    };
})(window, jQuery);
上面是源码。这个只支持一个分页对象,多个的时候只会保留最后一个,js有点蒙。。。。。

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧