【ztree】删除节点后,刷新页面之后展开状态为删除前状态

//删除节点前判断

  function zTreeBeforeRemove(treeId, treeNode) {
        var zTree = $.fn.zTree.getZTreeObj(treeId);
        //采用layer的确认弹框
        layer.confirm("确认删除 节点 -- " + treeNode.name + " 吗?", {
            btn: ['是', '否']
        }, function (index) {
            zTreeOnRemove(treeId, treeNode); //删除方法
            InitialZtree();//刷新树
            Search();//刷新右边列表数据

            //取之前缓存数据,展开上次操作节点
            var cookie = $.cookie("z_tree" + window.location);
            if (cookie) {
                var z_tree = JSON.parse(cookie);
                var selectNode = zTree.getNodeByParam("id", z_tree, null);
                zTree.expandNode(selectNode, true, true, true); //展开
            }

            layer.close(index);

        }, function (index) {
            layer.close(index);
        });
        return false;
    };
//删除节点
function zTreeOnRemove(treeId, treeNode) {
    $.ajax({
        url: "",
        type: "post",
        async: false,
        data: { NodeId: treeNode.id },
        success: function (data) {
            if (data != "success") {
                layer.alert("删除节点失败!");
            }

            //删除时存当前删除节点的父节点。以便删除后刷新再展开当前节点
            var z_tree = new Array();
            if ($.inArray(treeNode.id, z_tree) < 0) {
                z_tree.push(treeNode.ParentId); //这里存删除对应的父节点
            }
            $.cookie("z_tree" + window.location, JSON.stringify(z_tree));
        }
    })
};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zTree 中,可以使用 `beforeReload` 和 `onAsyncSuccess` 两个事件来实现刷新展开刷新打开的节点的功能。 具体步骤如下: 1. 在 `beforeReload` 事件中,将当已经展开节点的 ID 存储到一个数组中,例如 `expandedNodeIds`。 ``` var expandedNodeIds = []; function beforeReload(treeId, treeNode) { var nodes = zTree.getNodesByParam("isParent", true); for (var i = 0, l = nodes.length; i < l; i++) { if (nodes[i].open) { expandedNodeIds.push(nodes[i].id); } } } ``` 2. 在 `onAsyncSuccess` 事件中,对存储在 `expandedNodeIds` 数组中的节点进行展开操作。 ``` function onAsyncSuccess(event, treeId, treeNode, msg) { for (var i = 0, l = expandedNodeIds.length; i < l; i++) { var node = zTree.getNodeByParam("id", expandedNodeIds[i]); if (node) { zTree.expandNode(node, true, false, false); } } expandedNodeIds = []; } ``` 完整代码如下所示: ``` var expandedNodeIds = []; function beforeReload(treeId, treeNode) { var nodes = zTree.getNodesByParam("isParent", true); for (var i = 0, l = nodes.length; i < l; i++) { if (nodes[i].open) { expandedNodeIds.push(nodes[i].id); } } } function onAsyncSuccess(event, treeId, treeNode, msg) { for (var i = 0, l = expandedNodeIds.length; i < l; i++) { var node = zTree.getNodeByParam("id", expandedNodeIds[i]); if (node) { zTree.expandNode(node, true, false, false); } } expandedNodeIds = []; } ``` 在 zTree 的配置中,将 `beforeReload` 和 `onAsyncSuccess` 事件分别绑定到对应的属性上即可。 ``` var setting = { // ... callback: { beforeReload: beforeReload, onAsyncSuccess: onAsyncSuccess } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值