JQuery EasyUI 结合ztrIee的后台页面开发实例

JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,zTree是国内的大牛们搞的一个jquery树形tree插件,感觉很好用,很强大,而且完全免费,API等做的也非常不错.推荐

easyui 是一个基于 jQuery 的框架,集成了各种用户界面插件。
easyui 提供建立现代化的具有交互性的 javascript 应用的必要的功能。
使用 easyui,您不需要写太多 javascript 代码,一般情况下您只需要使用一些 html 标记来定义用户界面。
HTML 网页的完整框架。
easyui 节省了开发产品的时间和规模。
easyui 非常简单,但是功能非常强大。

需要的导入以下几种js文件和样式表

easyui/themes/default/easyui.css
easyui/themes/icon.css  
jquery-1.8.3.js
easyui/jquery.easyui.min.js
ztree/jquery.ztree.all-3.5.js(该文件包括core,exhide,exedit,excheck)
ztree/zTreeStyle.css

<script type="text/javascript">           
    // ztree菜单设置
    var zTreeObj,
    setting = {
        view: {
            selectedMulti: false
        },
        // 添加编辑设置:修改树节点名称/删除树节点
        edit: {
            enable: true
        },
        data: {
            simpleData: {
                enable: true
            }
        },
        callback:{
            onClick: zTreeOnClick
        }
    };
   
    // 回调函数:单击事件
    function zTreeOnClick(event, treeId, treeNode, clickFlag) {
        alert(treeNode.id + ", " + treeNode.name);
        var content = '<div>'
                            +'<iframe src="'
                            +treeNode.url
                            +'" scrolling="auto"></iframe></div>';
        if(treeNode.url != undefined && treeNode.url != ""){
            // 当centre中是否存在名称为treeNode.name的tabs
            if($("#tt").tabs('exists',treeNode.name)){
                $("#tt").tabs('select',treeNode.name);
            }else {
                $("#tt").tabs('add',{
                    title:treeNode.name,
                    content:content,
                    closable:true
                })
            }
        };
        event.preventDefault();
    };
   
    // 提供ztree树形菜单数据
    zTreeNodes  = [ {"id":1, "pId":0, "name":"海贼王"},
                            {"id":11, "pId":1, "name":"娜美", "url":""},
                            {"id":12, "pId":1, "name":"罗宾", "url":""},
                            {"id":13, "pId":1, "name":"汉库克", "url":""},
                            { "id":2,  "pId":0, "name":"父节点 2", "open":true},
                            {"id":21,"pId":2, "name":"叶子节点 2-1"},
                            {"id":22,  "pId":2, "name":"叶子节点 2-2"},
                            {"id":23,"pId":2, "name":"叶子节点 2-3"},
                            {"id":3,  "pId":0, "name":"父节点 3", "open":true},
                            {"id":31, "pId":3, "name":"叶子节点 3-1"},
                            {"id":32, "pId":3, "name":"叶子节点 3-2"},
                            {"id":33, "pId":3, "name":"叶子节点 3-3"}
                            ];
   
    // 3.生成树形菜单
    $(document).ready(function(){
        zTreeObj = $.fn.zTree.init($("#tree"), setting, zTreeNodes);
    });
   
    // 4.对象选项卡注册右击事件
    $(document).ready(function(){
        $("#tt").tabs({
            onContextMenu:function(e,title,index){
            // 阻止系统默认的右击事件
                e.preventDefault();
                $('#mm').menu('show', {
                    left: e.pageX,
                    top: e.pageY
                });
            }
        });
    });
   
    // 获取所选取的面板对象
    $(document).ready(function(){
        $("#tt").tabs({
            // 获取所选取的面板对象
            onSelect : function(title,index ){
                // 5. menu的单击事件绑定
                $("#mm").menu({
                    onClick:function(item){
                        alert(item.name);
                        //  当点击关闭当前选项卡时
                        if(item.name==='current'){
                            $('#tt').tabs('close',title);
                        // 当点击关闭其他选项卡时
                        }else if(item.name === 'others'){
                            var tabs = $('#tt').tabs('tabs');
                            $(tabs).each(function(){
                                if($(this).panel('options').title != '消息中心' && $(this).panel('options').title != title){
                                    $('#tt').tabs('close',$(this).panel('options').title);
                                }
                            });
                        // 当点击关闭所有选项卡时
                        }else if(item.name === 'all'){
                            var tabs = $('#tt').tabs('tabs');
                            $(tabs).each(function(){
                                        if($(this).panel('options').title != '消息中心'){
                                    $('#tt').tabs('close',$(this).panel('options').title);
                                }
                            });
                        }
                    }
                });
            }
        })
    })   
</script>

相应的htm 部分代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5a14555e8b9eac1d129dfb54c569e183.html