zoukankan      html  css  js  c++  java
  • jQuery+AJAX实现纯js分页功能

    使用jQuery的AJAX技术,在bootstrap的框架下搭建的纯js分页

    bootstrap作为Twitter推的一款前端框架,效果个人还是觉得很不错的。这次只是拿来作为网页元素的css样式表使用,比较省力,效果也会比自己做要漂亮多了。

    使用数据为单独的json文件data.json

    [
        {
            "name": "bootstrap-table",
            "stargazers_count": "526",
            "forks_count": "122",
            "description": "An extended Bootstrap table with radio, checkbox, sort, pagination, and other added features. (supports twitter bootstrap v2 and v3) "
        },
    ...
    ]

    把主要代码和过程总结一下

    html页面index.html如下

    <!DOCTYPE html>
    <html>
    <head>
    <title>Index</title>
    <script type="text/javascript" src="js/jquery-1.8.1.min.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <link type="text/css" rel="stylesheet" href="bootstrap/css/bootstrap.css">
    </head>
    
    <body>
    	<div>
    	 <table id="table" class="table table-bordered table-hover">
    	        <thead>
    	        <tr>
    	            <th>ID</th>
    	            <th>Item Name</th>
    	            <th>Item Price</th>
    		    <th>Item Operate</th>
    	        </tr>        	
    	        </thead>
    	        <tbody>
    
    	        </tbody>
    	    </table>
    	</div>
    	<nav align="center" id="page_nav">
    	<ul class="pagination" id="page_prev">
    	    <li id="prev">
    	      <a href="#" aria-label="Previous">
    	        <span aria-hidden="true">«</span>
    	      </a>
    	    </li>
    	</ul>
    	  <ul class="pagination" id="page_ul">
    	   
    	  </ul>
    	  <ul class="pagination" id="page_next">
    	  	<li id="next">
    	      <a href="#" aria-label="Next">
    	        <span aria-hidden="true">»</span>
    	      </a>
    	    </li>
    	  </ul>
    	</nav>
    </body>
    
    </html>


    js代码index.js如下

    var pageTotal=0;//总页数
    var rowTotal=0;//总行数
    var currentPage=0;//当前页数
    var startRow=0;//页开始行数
    var endRow=0;//页结束行数
    var pageSize=2;//每页行数
    
    function page(){
    	$.ajax({
    		url:"data.json",
    		type:"POST",
    		dataType:"json",
    		timeout:1000,
    		error:function(){
    			alert("ajax error");
    		},
    		success:function(data){
    			rowTotal=data.length;
    			pageTotal=Math.ceil(rowTotal/pageSize);//上取整
    			currentPage=1;
    <span style="white-space:pre">			</span>//绘制数据table
    			if(pageTotal==1){
    				for(var i=0;i<pageSize;i++){
    					$("#table tbody").append(
    					$("<tr><td>"+
    						data[i].name+
    						"</td><td>"+
    						data[i].stargazers_count+
    						"</td><td>"+
    						data[i].forks_count+
    						"</td><td>"+
    						data[i].description+
    						"</td></tr>")
    					);
    				}
    			}else{
    				for(var i=0;i<pageSize;i++){
    					$("#table tbody").append(
    					$("<tr><td>"+
    						data[i].name+
    						"</td><td>"+
    						data[i].stargazers_count+
    						"</td><td>"+
    						data[i].forks_count+
    						"</td><td>"+
    						data[i].description+
    						"</td></tr>")
    					);
    				}
    <span style="white-space:pre">				</span>//绘制页面ul
    				for(var i=1;i<pageTotal+1;i++){
    					$("#page_ul").append(
    						$("<li><a href='#'>"+i+"</a><li>")
    					);
    				}
    			}
    		}
    	});
    }
    //翻页
    function gotoPage(pageNum){
    	$.ajax({
    		url:"data.json",
    		type:"POST",
    		dataType:"json",
    		timeout:1000,
    		error:function(){
    			alert("ajax error");
    		},
    		success:function(data){
    			currentPage=pageNum;
    			startRow=pageSize*(pageNum-1);
    			endRow=startRow+pageSize;
    			endRow=(rowTotal>endRow)?endRow:rowTotal;
    			$("#table tbody").empty();
    			for(var i=startRow;i<endRow;i++){
    				$("#table tbody").append(
    					$("<tr><td>"+
    						data[i].name+
    						"</td><td>"+
    						data[i].stargazers_count+
    						"</td><td>"+
    						data[i].forks_count+
    						"</td><td>"+
    						data[i].description+
    						"</td></tr>")
    					);
    			}
    			
    		}
    	});
    }
    
    
    $(function(){
    	page();
    
    	$("#page_ul li").live("click",function(){
    		var pageNum=$(this).text();
    		gotoPage(pageNum);
    	});
    
    	$("#page_prev li").live("click",function(){
    		if(currentPage==1){
    
    		}else{
    			gotoPage(--currentPage);
    		}
    	});
    
    	$("#page_next li").live("click",function(){
    		if(currentPage==pageTotal){
    
    		}else{
    			gotoPage(++currentPage);
    		}
    	})
    });
  • 相关阅读:
    杭电ACM 2052 Picture
    杭电ACM求平均成绩
    杭电ACM水仙花数
    cigarettes
    分数加减法
    推荐几个sql server牛人的博客
    npm 介绍
    centos Flash Player插件的安装
    node.js学习(1)
    查询功能:yum [list|info|search|provides|whatprovides] 参数
  • 原文地址:https://www.cnblogs.com/cnsec/p/13547610.html
Copyright © 2011-2022 走看看