【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

时间:2023-03-10 02:08:59
【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;
}
}

图示

显示编辑和删除时

【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

不显示编辑和删除时

【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

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

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;
}))
}
}

图示

显示添加按钮

【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

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

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

图示

移走删除添加按钮

【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

删除节点事件修改成触发自定义事件,返回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;
}