$(function () { var SEOPagination = { data: { pageNum: 1, // 当前页码 pageTotal: 1, // 总共多少页面 }, el: '.seo-pagination', $el: '', init: function () { this.initVars() this.addJumpDOM() this.initData() this.initEvents() }, initVars: function () { this.$el = $(this.el) }, initData: function () { var pager = this.$el.find('.el-pager') this.data.pageNum = pager.attr('data-page-num') - 0 this.data.pageTotal = pager.attr('data-page-total') - 0 }, initEvents: function () { // quicknext事件 $('.seo-pagination .prev-more, .seo-pagination .next-more').on('mouseover', function () { var $this = $(this) if ($this.hasClass('prev-more')) { $this.find('.el-icon').removeClass().addClass('el-icon el-icon-d-arrow-left') } else { $this.find('.el-icon').removeClass().addClass('el-icon el-icon-d-arrow-right') } }).on('mouseleave', function () { var $this = $(this) $this.find('.el-icon').removeClass().addClass('el-icon el-icon-more') }) this.jumpDOMEvents() }, addJumpDOM: function () { var jumpDOM = '跳到
确定
' this.$el.find('.el-pager').after(jumpDOM) }, jumpDOMEvents: function () { var _this = this this.$el.find('.el-input__inner').on('keydown', function (e) { // 回车事件 if (e.keyCode === 13) { _this.doPageChange() } }) this.$el.find('.el-pagination__confirm').on('click', function (e) { _this.doPageChange() }) }, // 获取jump输入框内数组 getJumpNum: function () { return this.$el.find('.el-input__inner').val() - 0 }, doPageChange: function () { // 计算页码 var nextPageNum = this.getJumpNum() var pageTotal = this.data.pageTotal var pageNum = this.data.pageNum if (nextPageNum <= 0) { nextPageNum = 1 } else if (nextPageNum === pageNum) { // 不做任何操作 return } else if (nextPageNum > pageTotal) { nextPageNum = pageTotal } this.onPageChange(nextPageNum) }, onPageChange: function (p) { console.log(p) try { onSEOPaginationChange && onSEOPaginationChange(p) } catch (error) { console.warn(error) } } } SEOPagination.init() })