作者:ssslinppp      

1. 摘要



一般我们在设计程序主框架的时候,当点击(子)菜单时,希望相应界面都在tabs页中显示;
在显示的时候,如果之前打开过该界面,则希望重新选中对应的tab页,并刷新;
如果之前没有打开对应的tab页,则创建一个新的tab页;
如下图所示:




2. jsp界面






  1. <!-- 主操作区 -->
  2. <div region="center" style="background:#eee; overflow-y:hidden" >
  3. <div id="centerTabs" class="easyui-tabs" fit="true" border="false" >
  4. </div>
  5. </div>
  6. <!--===================================其他信息===================================-->
  7. <!--tabs页右键选项 -->
  8. <div id="mm" class="easyui-menu" style="width:150px;z-index:90000000">
  9. <div id="mm-tabupdate">刷新</div>
  10. <div class="menu-sep"></div>
  11. <div id="mm-tabclose">关闭</div>
  12. <div id="mm-tabcloseall">全部关闭</div>
  13. <div id="mm-tabcloseother">除此之外全部关闭</div>
  14. <div class="menu-sep"></div>
  15. <div id="mm-tabcloseright">当前页右侧全部关闭</div>
  16. <div id="mm-tabcloseleft">当前页左侧全部关闭</div>
  17. </div>

3. 二级菜单


二级菜单:




  1. var actionUrl = basePath + "getMainMenu.action";
  2. var params = {
  3. };
  4. //菜单请求
  5. $.ajax({
  6. type : "POST",
  7. url : actionUrl,
  8. data : params,
  9. dataType : "json",
  10. async : false,
  11. cache : false,
  12. error : function(textStatus, errorThrown) {
  13. $.messager.alert('错误', "系统菜单加载失败: " + textStatus, 'error');
  14. },
  15. success : function(data, textStatus) {
  16. var menuList1 = "";
  17. $.each(data.menuList, function(i, o) {
  18. if(o.select){
  19. var mid = "#m"+i;//一级菜单mid
  20. var mmmid = "m"+i;
  21. menuList1 += '<a href="javascript:void(0)" class="easyui-menubutton" menu="'+mid+'" iconCls="'+o.iconName+'" style="width:130px;">'+o.menuName+'</a>';
  22. menuList1 += '<div id="'+mmmid+'" style="width:130px;">';
  23. $.each(o.childMenus, function(j, p) {
  24. if(p.select){
  25. var secondMenuId = ""+i+j;
  26. menuList1 += '<div id="'+secondMenuId+'" iconCls="'+p.iconName+'" url="'+p.urlPath+'" class="secondMenu">'+p.menuName+'</div>';
  27. }
  28. });
  29. menuList1 += '</div>'
  30. }
  31. })
  32. $(".menu1").append(menuList1);
  33. }
  34. });
2级菜单是通过拼接HTML语言完成的,拼接后的代码形如:

  1. <a href="javascript:void(0)" class="easyui-menubutton" menu="#m0" iconCls="icon-ok" style="width:130px;">一级菜单1</a>
  2. <div id="m0" style="width:130px;">
  3. </div>
  4. <a href="javascript:void(0)" class="easyui-menubutton" menu="#m1" iconCls="icon-ok" style="width:130px;">一级菜单2</a>
  5. <div id="m1" style="width:130px;">
  6. <div id="10" iconCls="icon-ok" url="null" class="secondMenu">二级菜单21</div>
  7. <div id="11" iconCls="icon-ok" url="null" class="secondMenu">二级菜单22</div>
  8. <div id="12" iconCls="icon-ok" url="null" class="secondMenu">二级菜单23</div>
  9. <div id="13" iconCls="icon-ok" url="null" class="secondMenu">二级菜单24</div>
  10. </div>


4. tabs



  1. /*选择2级菜单功能项后在center区域 添加tabs*/
  2. $(".secondMenu").click(function(){
  3. var name = $(this).text();
  4. if($("#centerTabs").tabs('exists', name)){ //选中并更新
  5. $('#centerTabs').tabs('select', name);
  6. $('#mm-tabupdate').click();
  7. }
  8. else{
  9. var url = basePath+$(this).attr("url"); //要加载界面的URL--action请求
  10. var icons = $(this).attr("iconCls");
  11. $('#centerTabs').tabs('add',{
  12. title:name,
  13. url: url,
  14. icon:icons,
  15. content:'<iframe scrolling="auto" frameborder="0" id="'+name+'" name="'+name+'" src="'+url+'" style="width:100%;height:100%"></iframe>',
  16. closable:true});
  17. };
  18. });


  1. //绑定右键菜单事件
  2. function tabCloseEven(){
  3. //刷新
  4. $('#mm-tabupdate').click(function(){
  5. var currTab = $('#centerTabs').tabs('getSelected');
  6. var content = $(currTab.panel('options').content);
  7. $('#centerTabs').tabs('update',{
  8. tab:currTab,
  9. options:{
  10. content:content
  11. }
  12. })
  13. });
  14. };

附件列表

【EasyUI学习-3】Easyui tabs入门实践的更多相关文章

  1. 分布式学习系列【dubbo入门实践】

    分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...

  2. EasyUI学习(一)——EasyUI入门

    EasyUI学习总结(一)——EasyUI入门 一.EasyUI下载 EasyUI官方下载地址:http://www.jeasyui.com/download/index.php,目前最新的版本是:j ...

  3. EasyUI学习笔记(一)EasyUI入门

    一.EasyUI下载 EasyUI官方下载地址:http://www.jeasyui.com/download/index.php,目前最新的版本是:jquery-easyui-1.7.2 解压后得到 ...

  4. easyUI 学习

    )省份-城市-区域三级联动[struts2 + ajax +非数据库版] (1)省份-城市-区域,基于jQuery的AJAX三级联动,用Struts2整合AJAX[非数据库版] $.ajax( { t ...

  5. JQuery EasyUI学习框架

    前言 前端技术,新项目的开发拟使用EasyUI框架(基于EasyUI丰富UI组件库),项目负责人的提示EasyUI分配给我这个任务.发展前,我需要这对于一个新手EasyUI框架学习一些基本的入门.记录 ...

  6. jQuery EasyUI学习资源汇总

    jQuery EasyUI学习资源汇总 EasyUi – 1.入门 EasyUi – 2.布局Layout + 3.登录界面 EasyUi – 4.datwagrid 学习Jquery EasyUI的 ...

  7. jQuery EasyUI学习二

    1.   课程介绍 1.  Datagrid组件(掌握) 2.  Dialog.form组件(掌握) 3. Layout.Tabs;(掌握) Datagrid组件 2.1.  部署运行pss启动无错 ...

  8. Asp.Net MVC4 + Oracle + EasyUI 学习 序章

    Asp.Net MVC4 + Oracle + EasyUI  序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1.  简 ...

  9. 1. EasyUI 学习总结(一)——对话框dialog

    文章参考来源:http://www.cnblogs.com/xdp-gacl/p/4075079.html 感谢博主的分享,写得非常精细,我在这边给看过的做一个记录. 一.EasyUI下载 使用eas ...

随机推荐

  1. C++模板详解——使用篇

    假如我们需要取得两个变量中较大的变量,或许,我们可以通过重载的方式实现,如下. int max(int fir,int sec); float max(float fir,float sec); do ...

  2. POJ 3251 Big Square

    A quite challenging problem,最终看了题解才写出来,惭愧 /*Sample Input 6 J*J*** ****** J***J* ****** **B*** ****** ...

  3. Oracle导出空表解决办法

    在oracle 11g 中,发现传统的exp不能导出空的表 oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true.具体是什么意思呢 ...

  4. Java——多线程小例子

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  5. 在 Ubuntu 14.04 Chrome中安装Flash Player(转)

    在 Ubuntu 14.04 中安装 Pepper Flash Player For Chromium  一个 Pepper Flash Player For Chromium 的安装器已经被 Ubu ...

  6. Java 线程面试题 Top 50

    --> Java 线程面试题 Top 50 html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1. ...

  7. 关于Java Logger类的使用问题 - 内存不释放

    原文地址:http://www.ihuxu.com/p/236.html   说明:这是一个利用Java Logger类的示例,完成简单的日志记录功能.代码中有部分类库没有说明,但不影响阅读. 本人技 ...

  8. 如何编写Makefile,一份由浅入深的Makefile全攻略

    本文转载整理自陈浩大大的文章(跟我一起写 Makefile),由于原文内容庞大,故梳理出目录结构以便于学习及查阅参考. 一.概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这 ...

  9. matplotlib 操作子图(subplot,axes)

    Matplotlib 中文用户指南 3.3 使用 GridSpec 自定义子图位置 ax:matplotlib.axes._subplots.AxesSubplot,的基本操作 ax.set_xtic ...

  10. HDU1423 Greatest Common Increasing Subsequence

    题意 如标题. \(|s1|,|s2| \leq 500\) 分析 既然是dp问题的组合,那么考虑dp. 定义状态f(i,j)表示对第一个序列s1的前i个和第二个序列s2的前j个元素求最长上升公共子序 ...