zoukankan      html  css  js  c++  java
  • 【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

    setting添加

        edit: {
            drag: {
                isCopy: false,
                isMove: true
            },
            enable: true,//设置是否处于编辑状态
            showRemoveBtn: showRemoveAndRenameBtn,
            showRenameBtn: showRemoveAndRenameBtn,
            removeTitle: "删除",
            renameTitle: "修改"
        },
        view: {
            dblClickExpand: false,
            showLine: false,
            addHoverDom: addHoverDom,   // 用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮
            removeHoverDom: removeHoverDom, // 用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮
            selectedMulti: false
        },
        callback: {
            onClick: archiveTypeTreeClick,
            beforeRemove: deleteNodeBefore,    //节点被删除之前的事件,并且根据返回值确定是否允许删除操作
            beforeEditName: zTreeBeforeEditName     //节点被编辑之前的事件,并且根据返回值确定是否允许编辑操作
        }

    显示编辑和删除过滤,也可以分开来

    function showRemoveAndRenameBtn(treeId, treeNode) {
        if (treeNode不现实编辑和删除条件) {
            // 不显示编辑和删除按钮
            return false;
        } else {
            return true;
        }
    }

    图示

    显示编辑和删除时

     不显示编辑和删除时

    鼠标移动在节点上添加【添加事件按钮】

    function addHoverDom(treeId, treeNode) {
        //设置只有父节点可以新增 其它只能编辑
        if (treeNode需要添加事件的条件) {
            treeId = $("#" + treeNode.tId + "_span");
            treeNode.editNameFlag || 0 < $("#addBtn_" + treeNode.tId).length || (treeId.after("<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增' ></span>"), (treeNode = $("#addBtn_" + treeNode.tId)) && treeNode.bind("click", function () {
                这里是点击添加事件调用();
                return true;
            }))
        }
    }

    图示

    显示添加按钮

    鼠标移走后删除添加的事件

    function removeHoverDom(treeId, treeNode) {
        $("#addBtn_" + treeNode.tId).unbind().remove();
    }

    图示

    移走删除添加按钮

    删除节点事件修改成触发自定义事件,返回false是阻止删除节点事件

    参考官网:http://www.treejs.cn/v3/api.php 方法setting.callback.beforeEditName

    function deleteNodeBefore(treeId, treeNode) {
        if (不显示删除事件的条件) {
            // 不做处理
            return false;
        }
        这里是自定义事件();
        return false;
    }

    编辑节点事件修改成触发自定义事件,返回false是不触发原来ztree编辑节点名称事件

    参考官网:http://www.treejs.cn/v3/api.php 方法setting.callback.beforeRemove

    function zTreeBeforeEditName(treeId, treeNode) {
        if (不显示编辑事件的条件) {
            // 不做处理
            return false;
        }
        这里是自定义事件();
        return false;
    }
  • 相关阅读:
    About_Web
    神奇的 SQL 之性能优化 → 让 SQL 飞起来
    Java实现Kafka生产者和消费者的示例
    Android屏幕绘制一问到底(无代码)
    关于数据库事务和锁的必会知识点,你掌握了多少?
    【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案
    Choreographer全解析
    气之争,聊聊算法岗位的门户之见!
    资深首席架构师预测:2021年云计算的8个首要趋势
    【并发编程】- 内存模型(针对JSR-133内存模型)篇
  • 原文地址:https://www.cnblogs.com/xiaostudy/p/11611649.html
Copyright © 2011-2022 走看看