ztree : 增删改功能demo与自定义DOM功能demo的结合

最近有个项目要用ztree,需要用ztree自带的功能(增删改),也需要自定义DOM的功能(置顶)。

ztree的demo里有增删改的demo,也有自定义DOM的demo,但没有两者结合的。

所以我把demo改了一下,两个功能合在了一起。

上代码。

<!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE> ZTREE DEMO - edit</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 IDMark_Switch = "_switch",
        IDMark_Icon = "_ico",
        IDMark_Span = "_span",
        IDMark_Input = "_input",
        IDMark_Check = "_check",
        IDMark_Edit = "_edit",
        IDMark_Remove = "_remove",
        IDMark_Ul = "_ul",
        IDMark_A = "_a";

        var setting = {
            edit: {
                enable: true
            },
            data: {
                simpleData: {
                    enable: true
                }
            },
            callback: {
                beforeDrag: beforeDrag
            },
            view: {
                addHoverDom: addHoverDom,
                removeHoverDom: removeHoverDom
            }
        };

        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"}
        ];

        function beforeDrag(treeId, treeNodes) {
            return false;
        }

        function setEdit() {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
            remove = $("#remove").attr("checked"),
            rename = $("#rename").attr("checked"),
            removeTitle = $.trim($("#removeTitle").get(0).value),
            renameTitle = $.trim($("#renameTitle").get(0).value);
            zTree.setting.edit.showRemoveBtn = remove;
            zTree.setting.edit.showRenameBtn = rename;
            zTree.setting.edit.removeTitle = removeTitle;
            zTree.setting.edit.renameTitle = renameTitle;
            showCode([‘setting.edit.showRemoveBtn = ‘ + remove, ‘setting.edit.showRenameBtn = ‘ + rename,
                ‘setting.edit.removeTitle = "‘ + removeTitle +‘"‘, ‘setting.edit.renameTitle = "‘ + renameTitle + ‘"‘]);
        }
        function showCode(str) {
            var code = $("#code");
            code.empty();
            for (var i=0, l=str.length; i<l; i++) {
                code.append("<li>"+str[i]+"</li>");
            }
        }

        function addHoverDom(treeId, treeNode) {
            if (treeNode.parentNode && treeNode.parentNode.id!=1) return;
            var aObj = $("#" + treeNode.tId + IDMark_A);
            if (treeNode.id == 11) {
                if ($("#diyBtn_"+treeNode.id).length>0) return;
                var editStr = "<span id=‘diyBtn_space_" +treeNode.id+ "‘ >&nbsp;</span><span class=‘button icon03‘ id=‘diyBtn_" +treeNode.id+ "‘ title=‘"+treeNode.name+"‘ onfocus=‘this.blur();‘></span>";
                aObj.append(editStr);
                var btn = $("#diyBtn_"+treeNode.id);
                if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
            }
        }

        function removeHoverDom(treeId, treeNode) {
            if (treeNode.parentTId && treeNode.getParentNode().id!=1) return;
            console.log("???")
            if (false) {
                $("#diyBtn1_"+treeNode.id).unbind().remove();
                $("#diyBtn2_"+treeNode.id).unbind().remove();
            } else if (treeNode.id == 11) {
                $("#diyBtn_"+treeNode.id).unbind().remove();
                $("#diyBtn_space_" +treeNode.id).unbind().remove();
            }
        }

        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
            setEdit();
            $("#remove").bind("change", setEdit);
            $("#rename").bind("change", setEdit);
            $("#removeTitle").bind("propertychange", setEdit)
            .bind("input", setEdit);
            $("#renameTitle").bind("propertychange", setEdit)
            .bind("input", setEdit);
        });
        //-->
    </SCRIPT>
    <style type="text/css">
.ztree li span.demoIcon{padding:0 2px 0 10px;}
.ztree li span.button.icon01{margin:0; background: url(../../../css/zTreeStyle/img/diy/3.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon02{margin:0; background: url(../../../css/zTreeStyle/img/diy/4.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon03{margin:0; background: url(../../../css/zTreeStyle/img/diy/5.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon04{margin:0; background: url(../../../css/zTreeStyle/img/diy/6.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon05{margin:0; background: url(../../../css/zTreeStyle/img/diy/7.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon06{margin:0; background: url(../../../css/zTreeStyle/img/diy/8.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
    </style>
</HEAD>

<BODY>
<h1>基本 增 / 删 / 改 节点</h1>
<h6>[ 文件路径: exedit/edit.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、setting 配置信息说明</h2>
                <ul class="list">
                <li>此 Demo 仅从功能上演示编辑节点的基本方法和配置参数</li>
                <li class="highlight_red">1)、使用 编辑功能,必须设置 setting.edit 中的各个属性,详细请参见 API 文档中的相关内容</li>
                <li class="highlight_red">2)、使用 编辑功能的事件回调函数,必须设置 setting.callback.beforeRemove / onRemove / beforeRename / onRename 等属性,详细请参见 API 文档中的相关内容</li>
                <li class="highlight_red">3)、zTree 不提供默认的增加按钮,如需实现请利用自定义控件的方法 addHoverDom / removeHoverDom ,详细请参见 API 文档中的相关内容;另外也可以参考 "高级 增 / 删 / 改 节点" 的 Demo</li>
                <li><p>基本编辑按钮设置:<br/>
                        <input type="checkbox" id="remove" class="checkbox first" checked /><span>显示删除按钮</span>
                        <input type="checkbox" id="rename" class="checkbox " checked /><span>显示编辑按钮</span><br/>
                        remove 按钮的 title: <input type="text" id="removeTitle" value="remove" /><br/>
                        rename 按钮的 title: <input type="text" id="renameTitle" value="rename" />
                        <ul id="code" class="log" style="height:85px;"></ul></p>
                </li>
                </ul>
            </li>
            <li class="title"><h2>2、treeNode 节点数据说明</h2>
                <ul class="list">
                <li>对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性</li>
                </ul>
            </li>
        </ul>
    </div>
</div>
</BODY>
</HTML>

以上。

原文地址:https://www.cnblogs.com/foxcharon/p/10369078.html

时间: 2024-10-16 22:20:52

ztree : 增删改功能demo与自定义DOM功能demo的结合的相关文章

JavaWeb系统(增删改查、多条件查询功能)

该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先是相关包的创建,如截图所示(使用的是eclipse软件) package com.user; public class User { private int id; private String name; private String sex; private String mianzu; pri

JavaScript HTML DOM增删改查

首先 js 可以修改HTML中的所有元素和属性,它还可以改变CSS样式,并且可以监听到所有事件并作出响应,这篇笔记呢 主要记录如何对HTML元素进行增删改查. 1 查找DOM 第一种方式是我们最常用的:通过ID查找: <!DOCTYPE html> <html> <head> <title>learn javascript</title> </head> <body> <p id="demo"&g

Android SQLite的使用,基本的增删改查效果,以及ListView的效果显示

1 package com.example.sqlitetest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import android.content.ContentValues; 6 import android.content.Context; 7 import android.database.Cursor; 8 import android.database.sqlite.SQLiteDatabase; 9

[Cocoa-4th] Chapter6 - NSTableView表格增删改 (详尽介绍2)

[Cocoa-4th] Chapter6 - NSTableView表格增删改 (详尽介绍2) 功能如上:NSTableView表格增删改 STEP1 Open XCode Ver4.6  New Application  在xib控件界面上加入一些控件,如图: STEP2 新建类:NSObject子类,命名为: Table_DS_Main 注意:添加协议NSTableViewDataSource,然后停止,从控件面板找到Object,放在界面窗口左边,指定这个类,然后 点击控件上的按钮,按住C

CodeSmith生成的增删改查方法模板源码分享

我是个懒人,喜欢用最少的精力去做更多的事.每每做项目和写一些demo的时候,增删改查都少不了,这些功能写多了就觉得太浪费精力时间,所以就写了个模板,让自己从重复的代码中解放出来. 个人不太会构架,所以模板就是生成一个三层架构,有dal.bll.和model层的项目.对应的数据库是SQL Server 下载链接:https://github.com/lzjluoze/-CodeSmith-/tree/master/NetCms-v1.0 生成演示: 说明:

IOS之分析网易新闻存储数据(CoreData的使用,增删改查)

用过网易新闻客户端的朋友们都知道,获取新闻列表时有的时候他会请求网络有时候不会,查看某条新闻的时候再返回会标注已经查看的效果,接下来分析一下是如何实现的. 首先: 1.网易新闻用CoreData存储了新闻列表,因为我打开网易新闻的Documents时看到了三个文件: newsapp.sqlite,newsapp.sqlite-shm,newsapp.sqlite-wal:这三个文件是你在用CoreData时自动生成的.所以我确定他是用coredata存储的数据而不是sqlite数据库.(Core

SpringBoot JPA + H2增删改查示例

下面的例子是基于SpringBoot JPA以及H2数据库来实现的,下面就开始搭建项目吧. 首先看下项目的整体结构: 具体操作步骤: 打开IDEA,创建一个新的Spring Initializr项目,填写好groupID等信息,依赖勾选web和H2,一路next: pom.xml关键依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactI

KM盒子V6.2自定义模版功能教程

KM盒子从V6.2版开始将原来的自定义首页功能升级为自定义模版功能,增加{img}文档缩图.{lit}标题.{liurl}链接.{descr}描述等模版标签的调用. 1.怎样使用自定义模版功能 我们在根目录节点"内容项目"节点上右键,在弹出的菜单中选择最下面的"自定义模版设置"菜单选项. 2.设置自定义模版 首先我们需要选择index.html首页文件,然后将"是否定制首页"选项选为"是". 3.了解模版目录结构 首页模版为根

可编辑ztree节点的增删改功能图标控制---已解决

<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeEditName / beforeRemove / onRemove / beforeRename / onRename</TITLE> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <l