32zTree - 用 zTree 方法 增 / 删 / 改 节点

简介: 32zTree - 用 zTree 方法 增 / 删 / 改 节点

效果图:

代码:

<!DOCTYPE html>
<HTML>
<HEAD>
  <TITLE> ZTREE DEMO - addNodes / editName / removeNode / removeChildNodes</TITLE>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <link rel="stylesheet" href="../../../css/demo.css" type="text/css">
  <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
  <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
  <script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
  <script type="text/javascript" src="../../../js/jquery.ztree.excheck.js"></script>
  <script type="text/javascript" src="../../../js/jquery.ztree.exedit.js"></script>
  <SCRIPT type="text/javascript">
    <!--
    var setting = {
      view: {
        selectedMulti: false
      },
      edit: {
        enable: true,
        showRemoveBtn: false,
        showRenameBtn: false
      },
      data: {
        keep: {
          parent:true,
          leaf:true
        },
        simpleData: {
          enable: true
        }
      },
      callback: {
        beforeDrag: beforeDrag,
        beforeRemove: beforeRemove,
        beforeRename: beforeRename,
        onRemove: onRemove
      }
    };
    var zNodes =[
      { id:1, pId:0, name:"父节点 1", open:true},
      { id:11, pId:1, name:"叶子节点 1-1"},
      { id:12, pId:1, name:"叶子节点 1-2"},
      { id:13, pId:1, name:"叶子节点 1-3"},
      { 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"}
    ];
    var log, className = "dark";
    function beforeDrag(treeId, treeNodes) {
      return false;
    }
    function beforeRemove(treeId, treeNode) {
      className = (className === "dark" ? "":"dark");
      showLog("[ "+getTime()+" beforeRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
      return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
    }
    function onRemove(e, treeId, treeNode) {
      showLog("[ "+getTime()+" onRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
    }
    function beforeRename(treeId, treeNode, newName) {
      if (newName.length == 0) {
        alert("节点名称不能为空.");
        var zTree = $.fn.zTree.getZTreeObj("treeDemo");
        setTimeout(function(){zTree.editName(treeNode)}, 10);
        return false;
      }
      return true;
    }
    function showLog(str) {
      if (!log) log = $("#log");
      log.append("<li class='"+className+"'>"+str+"</li>");
      if(log.children("li").length > 8) {
        log.get(0).removeChild(log.children("li")[0]);
      }
    }
    function getTime() {
      var now= new Date(),
      h=now.getHours(),
      m=now.getMinutes(),
      s=now.getSeconds(),
      ms=now.getMilliseconds();
      return (h+":"+m+":"+s+ " " +ms);
    }
    var newCount = 1;
    function add(e) {
      var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      isParent = e.data.isParent,
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (treeNode) {
        treeNode = zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, isParent:isParent, name:"new node" + (newCount++)});
      } else {
        treeNode = zTree.addNodes(null, {id:(100 + newCount), pId:0, isParent:isParent, name:"new node" + (newCount++)});
      }
      if (treeNode) {
        zTree.editName(treeNode[0]);
      } else {
        alert("叶子节点被锁定,无法增加子节点");
      }
    };
    function edit() {
      var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (nodes.length == 0) {
        alert("请先选择一个节点");
        return;
      }
      zTree.editName(treeNode);
    };
    function remove(e) {
      var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (nodes.length == 0) {
        alert("请先选择一个节点");
        return;
      }
      var callbackFlag = $("#callbackTrigger").attr("checked");
      zTree.removeNode(treeNode, callbackFlag);
    };
    function clearChildren(e) {
      var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (nodes.length == 0 || !nodes[0].isParent) {
        alert("请先选择一个父节点");
        return;
      }
      zTree.removeChildNodes(treeNode);
    };
    $(document).ready(function(){
      $.fn.zTree.init($("#treeDemo"), setting, zNodes);
      $("#addParent").bind("click", {isParent:true}, add);
      $("#addLeaf").bind("click", {isParent:false}, add);
      $("#edit").bind("click", edit);
      $("#remove").bind("click", remove);
      $("#clearChildren").bind("click", clearChildren);
    });
    //-->
  </SCRIPT>
</HEAD>
<BODY>
<h1>用 zTree 方法 增 / 删 / 改 节点</h1>
<h6>[ 文件路径: exedit/edit_fun.html ]</h6>
<div class="content_wrap">
  <div class="zTreeDemoBackground left">
    <ul id="treeDemo" class="ztree"></ul>
  </div>
  <div class="right">
    <ul class="info">
      <li class="title"><h2>1、addNodes / editName / removeNode / removeChildNodes 方法操作说明</h2>
        <ul class="list">
        <li>利用 addNodes / editName / removeNode / removeChildNodes 方法也可以实现 增 / 删 / 改 节点的目的,这里简单演示使用方法</li>
        <li>cancelEditName 方法仅仅是在节点进入名称编辑状态时有效,请在必要时使用,Demo 不进行此方法的演示</li>
        <li class="highlight_red">利用 setting.data.keep.parent / leaf 属性 实现了父节点、叶子节点的状态锁定</li>
        <li><p>对节点进行 增 / 删 / 改,试试看:<br/>
          &nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" id="callbackTrigger" checked /> removeNode 方法是否触发 callback<br/>
          &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="addParent" href="#" title="增加父节点" onclick="return false;">增加父节点</a> ]
          &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="addLeaf" href="#" title="增加叶子节点" onclick="return false;">增加叶子节点</a> ]
          &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="edit" href="#" title="编辑名称" onclick="return false;">编辑名称</a> ]<br/>
          &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="remove" href="#" title="删除节点" onclick="return false;">删除节点</a> ]
          &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="clearChildren" href="#" title="清空子节点" onclick="return false;">清空子节点</a> ]<br/>
          remove log:<br/>
          <ul id="log" class="log"></ul></p>
        </li>
        <li class="highlight_red">使用 zTreeObj.addNodes / cancelEditName / editName / removeNode / removeChildNodes 方法,详细请参见 API 文档中的相关内容</li>
        </ul>
      </li>
      <li class="title"><h2>2、setting 配置信息说明</h2>
        <ul class="list">
        <li>同 "基本 增 / 删 / 改 节点"</li>
        <li class="highlight_red">保持 父 / 叶子 节点状态,需要设置 setting.data.keep.parent / leaf 属性,详细请参见 API 文档中的相关内容</li>
        </ul>
      </li>
      <li class="title"><h2>3、treeNode 节点数据说明</h2>
        <ul class="list">
        <li>同 "基本 增 / 删 / 改 节点"</li>
        </ul>
      </li>
    </ul>
  </div>
</div>
</BODY>
</HTML>
目录
相关文章
|
5月前
|
JSON JavaScript API
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
|
13天前
|
JavaScript 前端开发 索引
JavaScript 数组中的增、删、改、查
JavaScript 数组中的增、删、改、查
|
6月前
zTree节点增删改
zTree节点增删改
|
7月前
30zTree - 基本 增 / 删 / 改 节点
30zTree - 基本 增 / 删 / 改 节点
25 0
|
7月前
31zTree - 高级 增 / 删 / 改 节点
31zTree - 高级 增 / 删 / 改 节点
20 0
|
7月前
11zTree - 用 zTree 方法更新节点数据
11zTree - 用 zTree 方法更新节点数据
48 0
|
7月前
29zTree - 用 zTree 方法 移动 / 复制节点
29zTree - 用 zTree 方法 移动 / 复制节点
21 0
|
7月前
|
JavaScript 前端开发 Java
60jqGrid - 树模式添加数据
60jqGrid - 树模式添加数据
24 0
|
XML Java 数据格式
使用 dom4j 实现删除节点的操作| 学习笔记
快速学习使用 dom4j 实现删除节点的操作。
630 0
|
JavaScript
jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作
jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作
270 0
jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作