JQuery EasyUI 最簡單的左右布局實現及tab的右鍵菜單實現


發現最近有些人問用JQuery easyui要怎么實現左右結構的布局。就是點擊左邊的菜單在右邊的tab中打開。其實easyui要實現這種布局很簡單,只需要簡單的幾行代碼就ok了。

特意做了一個小小的demo供大家參考,還把怎么實現tab的右鍵菜單附上。

效果圖:

源碼:
js部分:

$(function () {
    //動態菜單數據
    var treeData = [{
            text : "菜單",
            children : [{
                    text : "一級菜單1",
                    attributes : {
                        url : ""
                    }
                }, {
                    text : "一級菜單2",
                    attributes : {
                        url : ""
                    }
                }, {
                    text : "一級菜單3",
                    state : "closed",
                    children : [{
                            text : "二級菜單1",
                            attributes : {
                                url : ""
                            }
                        }, {
                            text : "二級菜單2",
                            attributes : {
                                url : ""
                            }
                        }, {
                            text : "二級菜單3",
                            attributes : {
                                url : ""
                            }
                        }
                    ]
                }
            ]
        }
    ];
    
    //實例化樹形菜單
    $("#tree").tree({
        data : treeData,
        lines : true,
        onClick : function (node) {
            if (node.attributes) {
                Open(node.text, node.attributes.url);
            }
        }
    });
    //在右邊center區域打開菜單,新增tab
    function Open(text, url) {
        if ($("#tabs").tabs('exists', text)) {
            $('#tabs').tabs('select', text);
        } else {
            $('#tabs').tabs('add', {
                title : text,
                closable : true,
                content : text
            });
        }
    }
    
    //綁定tabs的右鍵菜單
    $("#tabs").tabs({
        onContextMenu : function (e, title) {
            e.preventDefault();
            $('#tabsMenu').menu('show', {
                left : e.pageX,
                top : e.pageY
            }).data("tabTitle", title);
        }
    });
    
    //實例化menu的onClick事件
    $("#tabsMenu").menu({
        onClick : function (item) {
            CloseTab(this, item.name);
        }
    });
    
    //幾個關閉事件的實現
    function CloseTab(menu, type) {
        var curTabTitle = $(menu).data("tabTitle");
        var tabs = $("#tabs");
        
        if (type === "close") {
            tabs.tabs("close", curTabTitle);
            return;
        }
        
        var allTabs = tabs.tabs("tabs");
        var closeTabsTitle = [];
        
        $.each(allTabs, function () {
            var opt = $(this).panel("options");
            if (opt.closable && opt.title != curTabTitle && type === "Other") {
                closeTabsTitle.push(opt.title);
            } else if (opt.closable && type === "All") {
                closeTabsTitle.push(opt.title);
            }
        });
        
        for (var i = 0; i < closeTabsTitle.length; i++) {
            tabs.tabs("close", closeTabsTitle[i]);
        }
    }
});

html部分:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<script class="jsbin" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
  article, aside, figure, footer, header, hgroup, 
  menu, nav, section { display: block; }
  .west{
    width:200px;
    padding:10px;
  }
  .north{
    height:100px;
  }
</style>
</head>
<body class="easyui-layout">
  <div region="north" class="north" title="____′↘夏悸  http://easyui.btboys.com">
    <h1>最簡單的左右結構實現,及tab的右鍵菜單實現,右鍵查看源碼</h1>
  </div>
  <div region="center" title="center">
    <div class="easyui-tabs" fit="true" border="false" id="tabs">
      <div title="首頁"></div>
    </div>
  </div>
  <div region="west" class="west" title="menu">
    <ul id="tree"></ul>
  </div>
  
  <div id="tabsMenu" class="easyui-menu" style="width:120px;">  
    <div name="close">關閉</div>  
    <div name="Other">關閉其他</div>  
    <div name="All">關閉所有</div>
  </div>  
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM