• layer.conifrm 非阻塞执行 ztree删除节点 问题


    layer.confirm无法阻塞js执行,导致ztree插件的beforeRemove回调函数未等待用户确定删除便已经移除界面中的节点, 因此可能会出现前后台数据不一致情况,正常逻辑理应删除后台数据然后移除界面中的ztree节点元素。

    解决方案:不使用ztree提供的默认删除功能(beforeRemove函数返回false即可),在layer.confirm中手动调用removeNode方法实现前台与后台的数据同步删除(舍弃ztree提供的自动删除功能)。代码如下:

    //beforeRemove回调函数
    function zTreeBeforeRemove(treeId, treeNode) {
    var zTree = $.fn.zTree.getZTreeObj("zTree");
    layer.confirm("确认删除节点 -> " + treeNode.name + " 吗?", {btn: ['确定', '取消']},
    function (index) {//确定
    $.ajax({
    url: url,
    data: {"id": treeNode.id},
    type: "POST",
    async: false,
    success: function (data) {
    if (!data) {
    layer.alert("该接口已经被申请!");
    } else {
    //手动移除节点
    zTree.removeNode(treeNode);
    layer.alert("删除成功!");
    }
    },
    error: function () {
    layer.alert("删除失败!");
    }
    });
    },
    function (index) {//取消
    layer.close(index);
    });
    //注意:返回false便不会触发onRemove事件
    return false;
    }

    参考文献:https://blog.csdn.net/yqwayward/article/details/78312424
    ---------------------
    作者:LYM0721
    来源:CSDN
    原文:https://blog.csdn.net/LYM0721/article/details/82183580?utm_source=copy
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    vsync信号产生与分发
    推荐看过不错的博客及网站
    证明质数有无数个
    242 Valid Anagram
    169 Majority Element
    快速排序--quicksort
    插入排序
    选择排序
    冒泡排序
    指针函数 函数指针 回调函数
  • 原文地址:https://www.cnblogs.com/lggggg/p/9796215.html
Copyright © 2020-2023  润新知