jQuery EasyUI 标签页切换时滚动条位置还原

jQuery EasyUI标签页切换时,iframe滚动条会回到最顶层,这是很正常的现象,只是很多情况下会需要将滚动条回到切换前的位置,刚好项目需要这个功能,做了下,保存下代码,以后用。

主页添加:


  $(document).ready(function(){
  $(".tabs").on("click","li",function(){
  var j;
  for(var i=0;i<$(".tabs").children("li").length;i++)
  {
  if($(".tabs").children("li").eq(i).hasClass("tabs-selected"))
  j=i;
  }
  window.frames[j].scrollTop=window.frames[j].document.documentElement.scrollTop;
  var a=$(this).text();
  var b=$(".tabs").children("li").index(this);
  setTimeout(function(){
  if(window.frames[b]&&window.frames[b].document)
  window.frames[b].document.documentElement.scrollTop=window.frames[b].scrollTop;}
  ,100);
  });
  
  
  
  $(".tabs").on("click",".tabs-close",function(){

  setTimeout(function(){
  var j;
  for(var i=0;i<$(".tabs").children("li").length;i++)
  {
  if($(".tabs").children("li").eq(i).hasClass("tabs-selected"))
  j=i;
  }
  if(window.frames[j]&&window.frames[j].document)
  window.frames[j].document.documentElement.scrollTop=window.frames[j].scrollTop;
  }
  ,100);

  });
  });

添加标签页的函数也做下修改:


  addPanel : function (menuUrl, menuText, obj) {
   if($(".tabs").children("li").length>=1){
    var j;
    for(var i=0;i<$(".tabs").children("li").length;i++)
    {
    if($(".tabs").children("li").eq(i).hasClass("tabs-selected"))
    j=i;
    }
    if(window.frames[j]&&window.frames[j].document)
    window.frames[j].scrollTop=window.frames[j].document.documentElement.scrollTop;
   }
   
   

   if(obj.tabs('exists', menuText)){
    obj.tabs('select', menuText);
    if($(".tabs").children("li").length>=1){
     var a;
     for(var b=0;b<$(".tabs").children("li").length;b++)
     {
     if($(".tabs").children("li").eq(b).find(".tabs-title").text()==menuText)
     a=b;
     }
     setTimeout(function(){
      if(window.frames[a]&&window.frames[a].document)
      window.frames[a].document.documentElement.scrollTop=window.frames[a].scrollTop;
     },100);
     
    }

   }else{
    obj.tabs('add',{
     title: menuText,
     content: '<iframe scrolling="auto" frameborder="0"  src="'+menuUrl+'" title='+menuText+' style="width:100%;height:100%;"></iframe>',
     closable: true
    });
   }
  }
  
};

不同项目下,具体参数肯定要做修改的。

虚像:

评论 阅读