ztree中一些实用功能写法

只展开第一级目录

效果如下:

效果

代码:

//展开所有节点
        ztree.expandAll(false);
//只展开第一级树
        var treeObj = $.fn.zTree.getZTreeObj("menuTree");
        var nodes = treeObj.getNodesByFilter(filter); // 查找节点集合
        $(nodes).each(function () {
            ztree.expandNode(this, true, false, true);
        });

function filter(node) {
    return (node.level == 0);
};

一个ztree的例子

包含了新增节点、改名、只显示第一级目录、自定义title显示

差点击某一个父目录展开下面所有子目录的功能 html:

<!DOCTYPE html>
<html>
<head>
<title>旅客列表</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="../public/css/bootstrap.min.css">
<link rel="stylesheet" href="../public/css/font-awesome.min.css">
<link rel="stylesheet" href="../public/plugins/jqgrid/ui.jqgrid-bootstrap.css">
<link rel="stylesheet" href="../public/plugins/ztree/css/metroStyle/metroStyle.css">
<link rel="stylesheet" href="../public/css/main.css">
<script src="../public/libs/jquery.min.js"></script>
<script src="../public/plugins/layer/layer.js"></script>
<script src="../public/libs/bootstrap.min.js"></script>
<script src="../public/libs/vue.min.js"></script>
<script src="../public/plugins/jqgrid/grid.locale-cn.js"></script>
<script src="../public/plugins/jqgrid/jquery.jqGrid.min.js"></script>
<script src="../public/plugins/ztree/jquery.ztree.all.min.js"></script>
<script src="../public/js/common.js"></script>
</head>
<body>
<div id="rrapp" class="panel panel-default">
	<div class="panel-heading">标签</div>
	<form class="form-horizontal">
		<div class="form-group">
			   	<div class="col-sm-12">
			      <ul id="menuTree" class="ztree"></ul>
			    </div>
			</div>
	</form>	 
</div>
<script src="../public/js/sys/tag.js"></script>
</body>
</html>

js:

$(function () {
    //加载标签树
    $.get("../tag/list", function (r) {
        //r.list是所有的列表,格式为[{"id":"1","name":"name1","parent_id":"0"},{"id":"2","name":"name2","parent_id":"0"}]
        ztree = $.fn.zTree.init($("#menuTree"), setting, r.list);
        //展开所有节点
        ztree.expandAll(false);

        //只展开第一级树
        var treeObj = $.fn.zTree.getZTreeObj("menuTree");
        var nodes = treeObj.getNodesByFilter(filter); // 查找节点集合
        $(nodes).each(function () {
            ztree.expandNode(this, true, false, true);
        });
    });
});
var ztree;
var setting = {
    edit: {
        enable: true,
        showRemoveBtn: false
    },
    view: {
        selectedMulti: false,
        addHoverDom: addHoverDom,
        removeHoverDom: removeHoverDom,
        showTitle: true
    },
    data: {
        key:{
          //自定义title显示需要用到
          title: "title"
        },
        simpleData: {
            enable: true,
            idKey: "id",
            pIdKey: "parent_id",
            rootPId: 0
        }
    },
    callback: {
        onRename: zTreeOnRename,
        onNodeCreated: zTreeOnNodeCreated
    }
};

function zTreeOnRename(event, treeId, treeNode, isCancel) {
    $.ajax({
        url: "../tag/update",
        data: {
            "id": treeNode.id,
            "name": treeNode.name,
            "parent_id": treeNode.parent_id
        },
        success: function (result) {
        }
    });
}

var newCount = 1;
function addHoverDom(treeId, treeNode) {
    var sObj = $("#" + treeNode.tId + "_span");
    if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
    var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
        + "' title='add node' onfocus='this.blur();'></span>";
    sObj.after(addStr);
    var btn = $("#addBtn_" + treeNode.tId);
    if (btn) btn.bind("click", function () {
        var tempname = "new node" + (newCount++);
        $.ajax({
            url: "../tag/add",
            data: {
                "name": tempname,
                "parent_id": treeNode.id
            },
            success: function (result) {
                if (0 == result.code) {
                    var zTree = $.fn.zTree.getZTreeObj("menuTree");
                    zTree.addNodes(treeNode, {id: result.id, pId: treeNode.id, name: "new node" + (newCount++)});
                }
            }
        });
        return false;
    });
};
function removeHoverDom(treeId, treeNode) {
    $("#addBtn_" + treeNode.tId).unbind().remove();
};
function filter(node) {
    return (node.level == 0);
};
function zTreeOnNodeCreated(event, treeId, treeNode) {
    var title = treeNode.name + ":id=" + treeNode.id + "&level=" + treeNode.level;
    var zTree = $.fn.zTree.getZTreeObj(treeId);
    treeNode.title = title;
    zTree.updateNode(treeNode);
};

转载于:https://my.oschina.net/softxiang/blog/995346

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值