首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jQuery Datatables防止在表重载时重置滚动条

jQuery Datatables防止在表重载时重置滚动条
EN

Stack Overflow用户
提问于 2017-11-27 17:06:56
回答 2查看 2.8K关注 0票数 1

我终于让我的数据表每隔一段时间重新加载一次。但我现在注意到的是,如果你向右滚动,表重载会将滚动重置回左侧。同样,如果向下滚动,它将重置回顶部。

我要阻止这一切的发生。

我已经尝试了这篇文章中的所有答案:How to maintain jQuery DataTables scroll position after .draw()

似乎什么都不起作用。也许我漏掉了什么。

我在这篇文章中注意到,问题是使用datatables.scroller.min.js:DataTables save state scroll position

这让我想到了这个:https://cdn.datatables.net/scroller/1.4.2/

但是那里有太多的CSS文件。我不知道该用哪一个,如果真的要用的话。

也许我不需要上面的任何东西,我只需要调整下面的代码来防止滚动重置的发生:

单击事件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('.searchSubmit').on('click', function() {
  updateDataTable();

  var idle = 0;
  var idleInterval = setInterval(timer, 5000);
  $(this).mousemove(function(e){idle = 0;});
  $(this).keypress(function(e){idle = 0;});
  function timer()
  {
    idle = idle + 1;
    if(idle > 2)
    {
      updateDataTable();
      console.log('table reloaded'); 
    }
  }
});

数据表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function updateDataTable() {
  $.ajax({
    url: 'api/railmbs.php',
    type: 'POST',
    data: data,
    dataType: 'html',
    success: function(data, textStatus, jqXHR)
    {
      var jsonObject = $.parseJSON(data); 
      var table = $('#example1').DataTable({    
        "data": jsonObject,
        "columns": [
          { "data": "BILL" },   
          { "data": "CONTAINER" },
          // few more columns
        ],
        "iDisplayLength": 25,
        "paging": true,
        "scrollY": 550,
        "scrollX": true,
        "bDestroy": true,
        "stateSave": true,  
        "autoWidth": true
      });
    },
    error: function(jqHHR, textStatus, errorThrown)
    {
      console.log('fail');
    }
  });
}
EN

回答 2

Stack Overflow用户

发布于 2020-09-06 22:13:46

DOM元素在elem.scrollLeft/scrollTopfurther reading中具有其当前滚动状态

试试这个代码它救了我。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var startPos = document.body.scrollLeft

 $(selector).DataTable().clear();
 $(selector).DataTable().ajax.reload(() => {

   document.body.scrollLeft = startPos;

  },false);

为了保持垂直滚动状态,可以试试下面这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var startPos = document.body.scrollTop

 $(selector).DataTable().clear();
 $(selector).DataTable().ajax.reload(() => {

   document.body.scrollTop = startPos;

  },false);
票数 1
EN

Stack Overflow用户

发布于 2017-11-27 19:05:22

使用DataTable().ajax.reload()将只初始化数据表,然后使其按一定的时间间隔重新加载(就像您当前正在做的那样)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 setInterval(function() {
   $('#example1').DataTable().ajax.reload(null, false);
 }, 5000);

$('#example1').DataTable({
  ajax: {
    url: "api/railmbs.php",
    type: 'POST',
    data: data,
    dataSrc: function(data) {
      return $.parseJSON(data);
    }
  },
  "columns": [{
      "data": "BILL"
    }, {
      "data": "CONTAINER"
    },
    // few more columns
  ],
  "iDisplayLength": 25,
  "paging": true,
  "scrollY": 550,
  "scrollX": true,
  "bDestroy": true,
  "stateSave": true,
  "autoWidth": true
});

根据DataTables文档resetPaging (false上的第二个参数)

重置(默认操作或true)或保持当前分页位置(false)。调用此方法时,将执行完整的重新排序和重新筛选,这就是为什么分页重置是默认操作的原因。

这意味着,无论是分页还是滚动的位置(X或Y)都不应该重置(如果您有scrollY,这一点也不重要)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47516285

复制
相关文章
jquery.datatables 分页功能
Datatables 插件的基本用法就不再介绍了,这里主要分享一下使用它实现服务器端获取数据时的分页处理。
用户7293182
2022/01/17
5K0
jquery.datatables 分页功能
Jquery Datatable的使用样例(ssm+bootstrsp框架下)服务器端分页
返回的参数:recordsTotal、recordsFiltered 都是结果集总记录数。data:结果集。draw:原样返回。
微风-- 轻许--
2022/04/13
1.7K0
Jquery Datatable的使用样例(ssm+bootstrsp框架下)服务器端分页
网页滚动条重置
::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { -webkit-box-shadow: inset006pxrgba(255,0,0,.3); background: hsla(0,0%,100%,.1) } ::-webkit-scrollbar-thumb { border-radius: 4px; background: rgba(0,0,0,.2); -webkit-b
李维亮
2021/07/08
7690
JQuery 表格插件介绍:Flexigrid 和 DataTables
JQuery 的表格插件有很多。Flexigrid 和 DataTables 是我最近使用的,并且功能比较强大,在这里介绍一下。如果你在寻找前端绘制表格的插件,可以考虑它们。
四火
2022/07/15
2.6K0
JQuery 表格插件介绍:Flexigrid 和 DataTables
jquery横向滚动条
此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" conten
deepcc
2018/05/16
7K0
jQuery插件DataTables环境搭建及简单使用
之前我已经简单介绍了这款插件,我把此类文章归类为“Web前端”,不是很正确,这款神奇的插件不仅支持客户端,也支持服务器端。通过ajax向服务器请求json数据,并展示到表格中。下面我们就来简单使用一下。
Petrochor
2022/06/07
3.5K0
jQuery插件DataTables环境搭建及简单使用
jQuery+Datatables实现表格批量删除功能
祖传代码的存在,这个项目自我进公司以来,就一直在改写加上维护,没有什么太厉害的技术,据说在我进公司之前,是经过两个Java后台来编写遗留下来的代码,公司觉得若是重新搭建框架过于费力,于是一直沿用至今,随着功能的越来越多,维护起来也是相当的费脑,每次修改的时候,我都会将某个部分的功能记录下来,写在自己的技术博客里面,以防混淆。
王小婷
2018/10/26
3K0
jquery datatables之Requested unknown parameter '' for row column
jquery datatables是一款应用特别广泛的表格js插件,只需进行简单的设置就可以运行起来,更多详情可以参考官网:https://www.datatables.net/manual/index,然而任何一个插件的使用过程都可能出现这样那样的问题,本文就将为大家讲述一个小的技巧:
johnhuster的分享
2022/03/28
8820
Jquery $.extend的重载方法详述
1 $.extend(result,item1,item2,item3,........)  -这个重载方法主要是用来合并,将所有的参数都合并到result中,并返回result,但是这样会破坏result的结构.代码展示:         $(function () {             var p1 = { name: "张三", age: 16, sex: "男" };             var p2 = { name: "李四", age: 22, sex: "女" };        
郑小超.
2018/01/24
7630
datatables使用教程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/18
7.2K1
datatables使用教程
重置样式表--HTML
重置样式表 这就是一个简单的我自己使用的重置样式表 里面的话 大多数的重置是都有啦的 大家没有的可以收藏起来 拿去用 html{ /* 标准字体大小可以,在移动端使用的rem适配的话会动态改变。 */ font-size:14px; /* 使用IE盒模型(个人取舍,我一般设置width是这是盒子的真实大小,包括padding和border) */ box-sizing: border-box; } html,body{ /* 在有些手机浏览器中点击一个链接或着可点击
宁在春
2022/10/31
2.1K0
报表系统练手(2) -- DataTables的使用(1)
有不同的页面主题风格:Base,bootstrap 3,jquery UI, Foundation, Semantic UI.
用户7293182
2022/01/17
1.4K0
报表系统练手(2) -- DataTables的使用(1)
mybatis(pagehelper) dataTables实现分页功能
心急的直接看代码:GitHub – chenjiangtao/mybatis-pagehelper-datatables
全栈程序员站长
2021/05/19
2.6K0
datatables,表格
官方文档:https://datatables.net/ var dttblTaskOrderOptions={ order: [5, 'desc'], ajax:{ url:"order/orderdelivery/search", type:"POST", data:function(data){ return JSON.stringify($.extend(data,dttblTaskOrderCondition)); }, dataType:"json", contentType:"applicat
windseek
2018/06/14
1.3K1
oracle如何防止锁表,Oracle-怎么防止oracle锁表[通俗易懂]
解决这种情况最好的方法就是在列上绑定一个序列,如果没有这么做,你也可以创建一个before触发器在插入前捕获resource_busy异常来防止阻塞:
全栈程序员站长
2022/08/27
9020
常用插件备份
常用插件备份 easyui 框架  http://www.cnblogs.com/purediy/archive/2013/02/17/2914309.html 表格数据展示插件 datatables http://dt.thxopen.com/index.html 全屏滚动插件   http://www.dowebok.com/77.html My97 DatePicker 日期选择插件:  用法介绍:http://www.my97.net/dp/demo/index.htm layer弹窗插件:http
阿炬
2018/05/11
1.8K0
dataTable参数说明
可以看到,DataTables的Options设置还是比较全面和丰富的,当然Options仅仅能在控件初始化的时候对控件进行控制和影响,如果要在控件使用过程中对它进行控制和变化,就需要用到DataTables的函数库(API).
菲宇
2019/07/31
4.6K0
解决gorm在update时没有表名
.Model方法,参数必须这样的,&User{} 这种结构体指针 ,user这个是结构体或者指针的情况下,也要再&取一下地址
唯一Chat
2021/11/03
7990
【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样。服务器端和客户端有许多可用的第三方库,这些库能够提供所有必需的功能,如 Web 表格中的搜索、排序和分页等。是否包含这些功能,取决于应用的特殊需求,例如在客户端和服务器端提供搜索或其它功能的需求等。 可用的库 以下是一些可用的库和插件: Grid.Mvc MVCGrid.NET PagedList.MVC JQuery.Grid JQuery Grid
葡萄城控件
2018/01/10
6.2K0
【初学者指南】在ASP.NET MVC 5中创建GridView
点击加载更多

相似问题

Jquery datatables -重置问题

11

DataTables:重置表数据

13

jQuery:在单击按钮时重置滚动条

13

刷新数据时,jquery datatables表断开

10

Server:在表被截断时防止自动增量重置

44
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文