关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法

 更新时间:2017年03月02日 09:44:28   作者:菜鸟葫芦娃  
这篇文章主要介绍了关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法,需要的朋友可以参考下

书写jQuery EasyUI Tab 样例时,如果刷新前面的Tab 选项卡,某一个Tab 选项卡里面的页面布局变乱。如下面图片所示:

刚开始打开时页面布局正确:

这里写图片描述
这里写图片描述 

此时我们在第二个选项卡里面,点击第一个页面的刷新按钮,一直刷新,然后切换回来再看看页面,如下图:

这里写图片描述 

但是首页选项卡的页面是正常的。

这里写图片描述 

为了便于解释说明,这里用第一个选项卡代表 “首页”,第二个选项卡代表”子菜单10”

出现这种情况的问题根本原因在于,你在第二个选项卡里面,点击其它第一个选项卡刷新按钮时,其实刷新的时第二个选项页面内容,当你鼠标离开你第一个选项卡刷新按钮时 ,此时才选中了第一个选项卡,而这时候第二个选项卡还没有渲染完毕,才导致出现这样的情况。验证过程,这是使用的是验证选项卡的title.

打开两个选项卡,一个”首页”,一个”子菜单10”选项卡,切换到”子菜单10”选项卡,然后点击”首页”选项卡的刷新按钮,弹出的结果如下的图,可见在鼠标点击的过程中,tab 里面选中的还是”子菜单10”选项卡,并不是我们看到的”首页”选项卡。

这里写图片描述

出现上图问题的错误代码如下:

/* title表示tab选项卡的标题 */
function refeshCurrentTab() {
      var tabPanel = $('#tabContainer');//存放tab选项卡的容器
      var tab = tabPanel.tabs('getSelected');
      //alert("tab选项卡选中按钮的title:"+tab.panel('options').title);      
      var url = $(tab.panel('options').content).attr('src');
      tabPanel.tabs('update', {
        tab: tab,
        options: {
          content: createFrame(url) //创建Frame标签
        }
      });
    };
   function createFrame(url) {
      return '<iframe src="' + url + '" frameborder="0" style="height:100%;width:100%;"></iframe>';
    };

找到问题的根本所在,那么在上述方法中,只需要刷新时传入刷新按钮那个tab选项卡的标题,选中这个,然后再进行刷新操作。修改的代码如下:

/* title表示tab选项卡的标题 */
    function refeshCurrentTab(title) {
      var tabPanel = $('#tabContainer');
      var tab = tabPanel.tabs('getSelected');
      //alert("传入的参数title:"+title+",tab选项卡选中按钮的title:"+tab.panel('options').title);      
      var refeshTab = tabPanel.tabs("getTab", title);
      if (tab != refeshTab) {
        tabPanel.tabs("select", title);
        tab = refeshTab;
      }
      var url = $(tab.panel('options').content).attr('src');
      tabPanel.tabs('update', {
        tab: tab,
        options: {
          content: createFrame(url)
        }
      });
    };
   function createFrame(url) {
      return '<iframe src="' + url + '" frameborder="0" style="height:100%;width:100%;"></iframe>';
    };

以上所述是小编给大家介绍的关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • jQuery中closest()函数用法实例

    jQuery中closest()函数用法实例

    这篇文章主要介绍了jQuery中closest()函数用法,实例分析了closest()函数的功能、定义及匹配元素的各种技巧,需要的朋友可以参考下
    2015-01-01
  • jQuery实现手机上输入后隐藏键盘功能

    jQuery实现手机上输入后隐藏键盘功能

    最近做了这样一个功能,让用户输入手机发送验证码,输完11位手机号后,自动隐藏键盘。下面通过本文给大家分享实现方法,一起看看吧
    2017-01-01
  • jQuery焦点图切换特效代码分享

    jQuery焦点图切换特效代码分享

    这篇文章主要介绍了jQuery焦点图切换特效,图片轮播效果特别适合做产品展示,丰富网页内容,感兴趣的小伙伴可以参考下。
    2015-09-09
  • 快速学习jQuery插件 Cookie插件使用方法

    快速学习jQuery插件 Cookie插件使用方法

    快速学习jQuery插件中的Cookie插件使用方法,一个轻量级的cookie插件,可以读取、写入、删除 cookie,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • jquery实现呼吸轮播效果

    jquery实现呼吸轮播效果

    这篇文章主要为大家详细介绍了jquery实现呼吸轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 教你一步步用jQyery实现轮播器

    教你一步步用jQyery实现轮播器

    相信大家应该都会看到在各大网站上都有一个轮播器的效果,于是自己不禁也想做一个,查了资料,看了轮播器的原理,慢慢的试着做了做,最终效果勉勉强强,但还是想总结出来,或许对有需要的朋友们带来一定的帮助,下面来一起看看吧。
    2016-12-12
  • jQuery学习笔记之 Ajax操作篇(一) - 数据加载

    jQuery学习笔记之 Ajax操作篇(一) - 数据加载

    Ajax 通俗来讲即不需要刷新页面即可从服务器或客户端上加载数据,当然这些数据的格式是多种多样的。
    2014-06-06
  • jQuery 源码分析笔记(3) Deferred机制

    jQuery 源码分析笔记(3) Deferred机制

    从1.5版本开始,jQuery加入了Deferred功能,让事件处理队列更加的完善。并用这个机制重写了Ajax模块。虽然还没轮到Ajax,但是接下来的事件处理函数中牵扯到了这个机制,所以提前看这段代码。
    2011-06-06
  • 使用jquery局部刷新(jquery.load)从数据库取出数据

    使用jquery局部刷新(jquery.load)从数据库取出数据

    jquery提供了很好的ajax交互,我这里用的是直接返回字符串,用的是jquery.load方法从数据库取出的数据
    2014-01-01
  • JQuery for与each性能比较分析

    JQuery for与each性能比较分析

    性能优化遇到很多细节问题(for与each性能比较)记录下来分享给大家,希望对你有所帮助
    2013-05-05

最新评论