首页点击 a 标签重定向到另一个页面,然后从另一个页面返回到首页时需要DataTable重新定位到之前页数
问题描述:
尝试用了下表格渲染成功的监听事件,但是每次跳页成功后这个事件又被监听到,然后死循环崩溃
$table.on('draw.dt', function (){// 获取表格分页信息
let info = $table.DataTable().page.info();// 获取是否跳页flag
let flag = $.session.get('jumpPageFlag');if(flag ==="false"|| flag === null ){// 之前保存的页面数
let plTableNum = $.session.getInt('plTableNum');// 跳页
$table.dataTable().api().page(plTableNum).draw(false);}}
解决方案:
换个思路 , 用定时器定时刷新跳页flag的状态 , 让程序不至于陷入死循环
// 每次跳页时保存当前页数 , 这里使用了sessionStorage
$table.on('page.dt', function (){
var info = $table.DataTable().page.info();
$.session.set('plTableNum', info.page);});// 每次表格渲染成功后, 判断是否跳页
$table.on('draw.dt', function (){
let info = $table.DataTable().page.info();
let flag = $.session.get('jumpPageFlag');if(flag ==="false"|| flag === null ){
let plTableNum = $.session.getInt('plTableNum');if(info.pages>0&& info.pages >= plTableNum){
$.session.set('jumpPageFlag',true);
$table.dataTable().api().page(plTableNum).draw(false);setTimeout(function(){
$.session.set('jumpPageFlag',false);},1500);}}});