Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在EndRequest上设置多个滚动条位置_Javascript_Jquery - Fatal编程技术网

Javascript 在EndRequest上设置多个滚动条位置

Javascript 在EndRequest上设置多个滚动条位置,javascript,jquery,Javascript,Jquery,我有一个ASP.NET页面,每隔一段时间就会发回一次,所以我四处寻找一个解决方案来维护页面上可滚动div的滚动条位置。我找到了一个适用于单个div的解决方案,这是jquery使用$get找到的第一个div,但我正在尝试对它进行修改,以完成每个div var xPos = []; var yPos = []; var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_beginRequest(BeginRequestH

我有一个ASP.NET页面,每隔一段时间就会发回一次,所以我四处寻找一个解决方案来维护页面上可滚动div的滚动条位置。我找到了一个适用于单个div的解决方案,这是jquery使用$get找到的第一个div,但我正在尝试对它进行修改,以完成每个div

 var xPos = [];
 var yPos = [];
 var prm = Sys.WebForms.PageRequestManager.getInstance();
 prm.add_beginRequest(BeginRequestHandler);
 prm.add_endRequest(EndRequestHandler);

 function BeginRequestHandler(sender, args) {
     yPos = [];
     xPos = [];
     $('tableContainer').each(function (theIndex, element) {
         xPos[theIndex] = $(this).scrollLeft;
         yPos[theIndex] = $(this).scrollTop;

     });

 }

 function EndRequestHandler(sender, args) {
     $('tableContainer').each(function (theIndex, element) {
         $(this).scrollLeft = xPos[theIndex];
         $(this).scrollTop = yPos[theIndex];

     });

 }
到目前为止,我已经做到了这一点,但这似乎不起作用,我不确定它挂在哪里。我把它放在JSFIDLE中是为了确保没有语法错误,但我不太确定从这里开始该怎么做


有人能提供一些见解吗?它似乎运行了一段时间,然后最终抛出一个索引越界错误;我认为在请求处理程序开始时重置数组至少可以防止这种情况发生。

经过一些修补,我最终解决了这个问题。我意识到我使用的元素都有相同的ID,所以我迭代了这个类

 var xPos = [4];
 var yPos = [4];
 var prm = Sys.WebForms.PageRequestManager.getInstance();
 prm.add_beginRequest(BeginRequestHandler);
 prm.add_endRequest(EndRequestHandler);

 function BeginRequestHandler(sender, args) {

     $(".tableContainer").each(function (theIndex, element) {
         xPos[theIndex] = $(this).scrollLeft;
         yPos[theIndex] = $(this).scrollTop;

     });

 }

 function EndRequestHandler(sender, args) {
     $(".tableContainer").each(function (theIndex, element) {
         $(this).scrollLeft = xPos[theIndex];
         $(this).scrollTop = yPos[theIndex];
      });


 }

你考虑过本地存储吗?看看这个: