//初始页面
var current_page=1;
function loadPageData(page){
// current_page=page;
//淡出一下
$('tbody').fadeOut();
$.get('/admin/comments-data.php',{page:page},function(res){
**if(page>res['total_page']){
loadPageData(res['total_page']);
return
}**
//每次执行都要初始化整个分页,因为有可能ajax操作了数据,那么有些分页数据可能改变了
//但是并没有刷新页面,所以这里要再次初始化,再次初始化后要设置起始页面为当前页面
//而且在每次数据变化之后,上面都要判断当前页面是否超过了总页数,那么超过就调用重新获取数据后的总页数
**$('.pagination').twbsPagination('destroy');
$('.pagination').twbsPagination({
first:'«',
last:'»',
prev:'<',
next:'>',
startPage: page,
totalPages: res['total_page'],
visiblePages: 5,
initiateStartPageClick:false,
//下面这个事件初始化不执行,因为上面设置了false
onPageClick: function (evt, page) {
loadPageData(page);
}
});**
$('tbody').html($('#template').render({comments:res['comments']}));
//淡入
$('tbody').fadeIn();
//给current_page重新赋值,等待删除或其他事件删除后再次回到原页面
current_page=page;
//操作,删除数据
//防止由于ajax多次执行,元素多次注册绑定事件,所以每一次就取消,只绑定一次
if($._data($('tbody')[0], "events")){
$('tbody').off();
}
$('tbody').on('click','.del',function(){
console.log(count++);
var id=$(this).data('id');
var warning=$('.info-alert');
$.get('/admin/comments-delete.php',{id:id},function(res){
loadPageData(current_page);
warning.html(res).css('display','block');
})
})
var checkList=$('.checkList');
var checkAll=$('#checkAll');
var delAll=$('#delAll');
var tbody=$('tbody');
var data_need='';
var idArr=[];
var count=0;
var listLength=checkList.length;
checkAll.on('change',function(){
//全选checkbox与各checkbox同步
var status=$(this).prop('checked');
checkList.prop('checked',status);
if(status){
//这里数组要清空,防止下方单选后这里又添加重数据
idArr=[];
checkList.each(function(){
var id=$(this).data('id');
idArr.push(id);
})
}else{
idArr=[];
}
data_need=idArr.join(',');
});
checkList.on('change',function(){
var status=$(this).prop('checked');
var id=$(this).data('id');
// console.log(length);
if(status){
idArr.push(id);
}else{
//点的是谁就在数组中查找后删除
idArr.splice(idArr.indexOf(id),1);
}
//点击单个checkbox与全选checkbox的联动性
var count=0;
checkList.each(function(){
var status=$(this).prop('checked');
status==false?count--:count++;
count==listLength?checkAll.prop('checked',true):checkAll.prop('checked',false);
})
data_need=idArr.join(',');
});
//这里当客户连续点击分页会有一个大bug,那就是不断出发分页的ajax之后(正常),给下面将要做的删除事件元素绑定了N+1次(点了N次)事件,这里必须解绑后重新绑定
if($._data(delAll[0], "events")){
delAll.off();
}
delAll.on('click',function(){
//数据不为空才删除
if(data_need!=false){
$.get('/admin/comments-delete.php',{id:data_need},function(res){
loadPageData(current_page);
$('.info-alert').html(res).css('display','block');
})
}
//这里如果点击全部删除按钮后,就把全选checkbox按钮的状态设置不勾选状态
if(checkAll.prop('checked')){
checkAll.prop('checked',false);
}
})
});
}
loadPageData(current_page);
twbsPagination/ajax,以及后续绑定事件操作的代码位置关系,checkbox单全选联动
最新推荐文章于 2024-10-10 07:44:47 发布