//Modal
function Modal(obj){
var that = this;
that.ref = "";
that.obj = obj;
that.init();
}
Modal.prototype = {
init:function(){
var that = this;
jQuery('.modal-head i[role="close-modal"],[role="btncancel"],[role="btnok"]').click(function (){
$(this).parents('.modal').removeClass('modal-in');
$('body').removeClass('modal-open');
console.log(new Date().getTime())
});
jQuery('[data-toggle="modal"]').click(function(e){
e.preventDefault();
that.ref = jQuery(this).attr('href');
if(that.obj == that.ref ){
that.showModal();
} })
},
showModal:function(callback){
var that = this;
jQuery(that.obj).addClass('modal-in');
jQuery('body').addClass('modal-open');
if(callback!=="" && callback!==undefined && jQuery.isFunction(callback)){
callback();
}
},
closeModal:function(callback){
var that = this;
jQuery(that.obj).removeClass('modal-in');
jQuery('body').removeClass('modal-open');
if(callback!=="" && callback!==undefined && jQuery.isFunction(callback)){
callback();
}
}
} jQuery(function(){
var pages = null;
var clickedPage = false;
var curPage = null;
function renderData(){
var url =contextPath+"/admin/query_goods.htm",
data = arguments[0],
status = arguments[1];
jQuery.ajax({
type:"post",
url:url,
data:data,
async:false,
success:function(data){
data = JSON.parse(data);
pages = data[1].Pages;
curPage = data[1].CurrentPage;
console.log(data[1].Pages);
if(data && data[0].goods_info.length>0){
var html = '';
jQuery.each(data[0].goods_info,function(i,item){
html += '<tr id="'+item.id+'">'
+'<td align="center"><label class="s-checkbox"><input type="checkbox" class="custom-checkbox" /><span></span></label></td>'
+'<td align="center">'+item.id+'</td>'
+'<td align="center">'+item.goods_name+'</td>'
+'<td align="center">'+item.net_content+'</td>'
+'<td align="center">'+item.store_price+'</td>'
'</tr>'; })
jQuery('.fshop_table.coupon-list tbody').html(html);
}
//没有点击分页按钮时就以这种方式渲染page
if(!status){
var pageContent = '';
for(var i=0;i<data[1].Pages;i++){
if(data[1].CurrentPage==(i+1)){
pageContent +='<li class="s-page-bage active"><span >'+data[1].CurrentPage+'</span></li>';
}
else{
pageContent +='<li class="s-page-bage"><span >'+(i+1)+'</span></li>';
}
}
jQuery('.s-goodslist-pages ul').html(pageContent);
var width = parseInt(jQuery('.s-page-bage span').width())+15;
jQuery('.s-goodslist-pages ul').css('width',width*(data[1].Pages));
}
},
error:function(e){
console.debug('加载商品数据出错:'+e)
}
})
} function renderPages(curPage){
if((curPage-2)>0 && (curPage+2) < pages){
pageContent ='<li class="s-page-bage"><span >'+(curPage-2)+'</span></li>'
+'<li class="s-page-bage"><span >'+(curPage-1)+'</span></li>'
+'<li class="s-page-bage active"><span >'+(curPage)+'</span></li>'
+'<li class="s-page-bage"><span >'+(curPage+1)+'</span></li>'
+'<li class="s-page-bage "><span >'+(curPage+2)+'</span></li>';
jQuery('.s-goodslist-pages ul').html(pageContent);
}
else if(curPage==(pages-2)){
pageContent ='<li class="s-page-bage"><span >'+(pages-4)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages-3)+'</span></li>'
+'<li class="s-page-bage active"><span >'+(pages-2)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages-1)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages)+'</span></li>';
jQuery('.s-goodslist-pages ul').html(pageContent);
}
else if(curPage==(pages-1)){
pageContent ='<li class="s-page-bage"><span >'+(pages-4)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages-3)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages-2)+'</span></li>'
+'<li class="s-page-bage active"><span >'+(pages-1)+'</span></li>'
+'<li class="s-page-bage"><span >'+(pages)+'</span></li>';
jQuery('.s-goodslist-pages ul').html(pageContent);
}
else if(curPage==2){
pageContent ='<li class="s-page-bage"><span>'+1+'</span></li>'
+'<li class="s-page-bage active"><span >'+2+'</span></li>'
+'<li class="s-page-bage"><span >'+3+'</span></li>'
+'<li class="s-page-bage"><span >'+4+'</span></li>'
+'<li class="s-page-bage"><span >'+5+'</span></li>';
jQuery('.s-goodslist-pages ul').html(pageContent);
} } function loadData(){
renderData();
} loadData(); //分页
jQuery('.s-page-bage').live('click',function(){
var curPage = parseInt(jQuery(this).find('span').text()),
goodsClass = jQuery('#goods_class').val(),
storeName = jQuery('#store_name').val(),
goodsBrand = jQuery('#goods_brand').val(),
goodsName = jQuery('#goods_name').val(),
pageContent = null,
data = {goods_class:goodsClass,store_name:storeName,goods_brand:goodsBrand,goods_name:goodsName,currentPage:curPage};
clickedPage = true;
jQuery(this).addClass('active').siblings().removeClass('active');
renderData(data,clickedPage);
renderPages(curPage);
}) //查询
jQuery('#s-search-goods-list').live('click',function(){
var goodsClass = jQuery('#goods_class').val(),
storeName = jQuery('#store_name').val(),
goodsBrand = jQuery('#goods_brand').val(),
goodsName = jQuery('#goods_name').val(),
data = {goods_class:goodsClass,store_name:storeName,goods_brand:goodsBrand,goods_name:goodsName,currentPage:curPage};
renderData(data,clickedPage);
renderPages(curPage);
}) //确认选择的商品
var modalCouponGoods = new Modal('#showCouponList');
jQuery('#selectGoodsOk').click(function(){
var checkedContent = jQuery('#coupon-list tbody').find('tr input[type="checkbox"]:checked');
var selectedVal = [];
modalCouponGoods.closeModal(function(){
jQuery.each(checkedContent,function(i,item){
selectedVal.push(jQuery(item).parents('tr').attr('id'));
})
jQuery('#selectedVal').val(selectedVal.join(','));
})
})
})

  

javascript笔记——前端实现分页和查询的更多相关文章

  1. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  2. 基于ArcGISServer进行分页矢量查询的方案进阶

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.    背景 在空间查询中,我们对查询结果要求以分页形式进行展示.G ...

  3. Django中前端界面实现级联查询

    Django前端界面实现级联查询 一.前端界面中 <span scope="col" colspan="6"> 院系:<select id=& ...

  4. MyBatis Plus 实现多表分页模糊查询

    项目中使用springboot+mybatis-plus来实现. 但是之前处理的时候都是一个功能,比如分页查询,条件查询,模糊查询. 这次将这个几个功能合起来就有点头疼,写下这边博客来记录自己碰到的问 ...

  5. 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历

    分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...

  6. Javascript实现前端简单路由

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  7. webform:分页组合查询

    一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...

  8. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  9. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

随机推荐

  1. Google Map和桌面组件 Android开发教程

    本文节选于机械工业出版社推出的<Android应用开发揭秘>一 书,作者为杨丰盛.本书内容全面,详细讲解了Android框架.Android组件.用户界面开发.游戏开发.数据存储.多媒体开 ...

  2. MySQL中内存分为全局内存和线程内存

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  3. this class is not key value coding-compliant for the key XXX错误的解决方法

    转自:http://www.cnblogs.com/zhangronghua/archive/2012/03/16/iOSError1.html 今天在听iOS开发讲座时,照着讲座的demo输入代码, ...

  4. JS控制输入框长度

    // 获取字符串的字节长度 function len(s) { s = String(s); return s.length + (s.match(/[^\x00-\xff]/g) || " ...

  5. memcached缓存批量更新解决方案探讨

    众所周知,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 俺所在的公司经营的主要是基于web和wap两个平台的手机游戏门户网站,分布式缓存解决方法正好有 ...

  6. 来自 Github 的图形化 Git 使用教程

    转载:http://www.linuxeden.com/html/news/20120628/126451.html 这是来自 Github 上对 Git 常用操作进行简短介绍以及可视化图形操作说明的 ...

  7. WPF 之 未捕获异常的处理

    首先,我们当然是要求应用程序开发人员,尽可能地在程序可能出现异常的地方都去捕捉异常,使用try…catch的方式.但是总是有一些意外的情况可能会发生,这就导致会出现所谓的“未捕获异常(Unhandle ...

  8. Emacs golang 配置

    在配置前需要下载用到的包: godoc godef gocode oracle 在下载包之前需要设置好环境变量: # Golang export GOROOT=$HOME/go export GOPA ...

  9. 【Shell脚本学习7】Shell脚本学习指南分享

    http://yunpan.cn/cyARvNiaiLhfR (提取码:2878)

  10. Unhandled Error in Silverlight Application “Syncfusion.Silverlight.Olap.Gauge.OlapGauge”的类型初始值设定项引发异常

    Silverlight 在运行时,如果出现如下错误: 检查生成的xap文件,解压出来,看是否里面包含该DLL:Syncfusion.Silverlight.Olap.Gauge.OlapGauge