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);
    		}
    	})
    });
  • 相关阅读:
    WCF 第四章 绑定 在多个绑定上暴露一个服务契约
    WCF 第五章 行为 事务跨操作事务流
    WCF 第五章 导出并发布元数据(服务行为)
    WCF 第五章 行为 通过配置文件暴露一个服务行为
    WCF 第五章 不支持会话的绑定的默认并发和实例
    WCF 第五章 并发和实例(服务行为)
    WCF 第五章 行为 总结
    WCF 第四章 绑定 绑定元素
    WCF 第五章 行为 事务之选择一个事务协议OleTx 或者WSAT
    WCF 第四章 绑定 比较各种绑定的性能和可扩展性
  • 原文地址:https://www.cnblogs.com/cnsec/p/13547610.html
Copyright © 2011-2022 走看看