微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jsTree - 使用来自 AJAX 的 JSON 重命名更新 DOM

如何解决jsTree - 使用来自 AJAX 的 JSON 重命名更新 DOM

我有以下代码在 jsTree 的上下文菜单重命名调用 AJAX。 AJAX 调用使用用户输入的文本更新数据库,但仅当它是表中的值时。因此,如果用户输入的值 - 例如“1234” - 不在数据库中 - JSON 返回文本为“数据不在数据库中,再试一次”等等,并且刷新有效,但这不是我想要的。>

我只想使用响应中的新 JSON 更新 DOM。

        $("#jsOrgTree").jstree({
        "core" : {
              "check_callback" : true,"data" : {
                "url" : "getData.cfm","dataType" : "json","data" : function (node) {
                    return { "id" : node.id };
                }
            }
        },"plugins": [ "search","contextmenu"],"contextmenu": {
                "items": function ($node) {
                            "Rename": {
                                    "separator_before": false,"separator_after": false,"icon": "/PNG/rename.png","label": "Rename","action": function () {
                                        tree.edit($node);
                                    }
                                }
        // RENAME
        .bind("dblclick.jstree",function (event) {    
            var jstree = $("#jsOrgTree").jstree(true);    
            var selectednode = $("#jsOrgTree").jstree('get_selected',true);    
            if (selectednode && selectednode.length > 0 && selectednode[0].id != "0") {    
                jstree.edit(selectednode[0]);    
            }    
        })
        .bind("rename_node.jstree",function (e,data) {
           
            var tree = $("#jsOrgTree").jstree(true);
            var clickednode = $("#jsOrgTree").jstree("get_selected");
            var nodetype = $("a[id='" + clickednode + "_anchor']").attr("data-nodetype");

            if (data.node.text && data.text != data.old) {
                if ( nodetype == "DBitem" ){
                    $.get("renameSP.cfm",{   "id" :  data.node.id,"text" : data.node.text,"nodeType" : nodetype
                        },function( response ) {
                            // this works but the tree is large and want to just update DOM with JSON,rsponse is JSON
            $('#jsOrgTree').jstree(true).refresh();
                            // check response to update DOM
                        }
                    )
                    .fail(function () {
                        data.instance.refresh();
                    });
                }
            }    
        })

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。