本文实例为大家分享了一个基于面向对象的分页组件的具体实现代码,供大家参考,具体内容如下
文字表达有限,直接上代码了
一个基于面向对象的分页组件undefined'){ this.eventHandlers[eventType]= []; } this.eventHandlers[eventType].push(eventHandler); }, /*触发自定义事件*/ fire: function(eventType){ if( this.eventHandlers[eventType] instanceof Array){ var len= this.eventHandlers[eventType].length; for(var i=0;i=4 && allNum >=6) { var pageA= document.createElement('a'); pageA.className= 'Paging-item Paging-item-start' pageA.href='#1' pageA.innerHTML= '首页' this.Box.appendChild(pageA); }; //当前页只要不是第一页就显示上一页 if(nowNum>=2){ var pageA= document.createElement('a'); pageA.className= 'Paging-item Paging-item-pre' pageA.href='#'+ (nowNum-1); pageA.innerHTML= '上一页' this.Box.appendChild(pageA); } //只有5页时 if(allNum[6] [7] [8] [9] 10 ==*/ pageA.href= '#'+ ((allNum-5)+i); if((allNum-nowNum) ===0 && i===5){ pageA.className= 'Paging-item Paging-item-active' pageA.innerHTML=((allNum-5)+i); }else if((allNum-nowNum) ===1 && i===4){ pageA.className= 'Paging-item Paging-item-active' pageA.innerHTML=((allNum-5)+i); }else{ // pageA.innerHTML= '['+ ((allNum-5)+i) +']' pageA.innerHTML= ((allNum-5)+i) } }else{ if(nowNum === (nowNum-3+i)){ pageA.className= 'Paging-item Paging-item-active' pageA.innerHTML= (nowNum-3+i); }else{ // pageA.innerHTML= '['+ (nowNum-3+i) +']' pageA.innerHTML= (nowNum-3+i) } } this.Box.appendChild(pageA); } } if((allNum-nowNum) >=1){ var pageA= document.createElement('a'); pageA.className= 'Paging-item Paging-item-next' pageA.href='#'+ (nowNum+1); pageA.innerHTML= '下一页' this.Box.appendChild(pageA); } //选择7为标准,或7以下才能显示 if((allNum-nowNum) >= 3 && allNum >= 6){ var pageA= document.createElement('a'); pageA.className= 'Paging-item Paging-item-end' pageA.href='#'+allNum; pageA.innerHTML= '尾页' this.Box.appendChild(pageA); } }, /*为UI绑定事件*/ bindUI: function(){ var self= this; this.config.callback(this.config.nowNum,this.config.allNum); //利用事件委托 self.Box.onclick= function(e){ var e= e || window.event; var target= e.target || e.srcElement; if(typeof e.target.getAttribute('href') === 'string'){ var nowNum= parseInt(target.getAttribute('href').substring(1)); // console.log(nowNum); self.Box.innerHTML= '' new Paging(null,{ nowNum: nowNum, allNum: self.config.allNum, callback: self.config.callback }) } return false; } }, /*渲染UI*/ render: function(container){ this.renderUI(); this.bindUI(); if(container){ var con= document.getElementById(container); con.appendChild(this.Box); }else{ document.body.appendChild(this.Box); } }, /*继承对象*/ extend: function(obj1,obj2){ for(attr in obj2){ obj1[attr]= obj2[attr]; } } } //初始化调用 var page= new Paging(null,{ nowNum: 1, allNum: 10, callback: function(nowNum,allNum){ console.log('当前页:'+nowNum) console.log('总页:'+allNum) } });" _ue_custom_node_="true">
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索面向对象
, 代码
, 事件
this
vue 分页组件、react 分页组件、分页组件、react native原生组件、面向组件编程,以便于您获取更多的相关知识。
时间: 2024-10-01 08:03:31