jstree delete_node()未删除 [英] jstree delete_node() is not deleting

查看:407
本文介绍了jstree delete_node()未删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在拼凑一个函数,为不同的节点组合一个自定义上下文菜单。好吧,到目前为止,很好地获得了不同的标签以显示文件夹或文件的点击,但实际上没有那么多删除它们。

I've been cobbling together a function to put together a custom context menu for different nodes. Well, so far so good on getting different label to show up for clicks on folders or files, but not so much on actually deleting them.

看一看。我不得不......做一些hacky解决方法,因为我无法得到node.hasClass('jstree-open')yada yada工作正常,但这通常会达到应该做的一点删除

Have a look. I had to ... do a little bit of a hacky workaround because I couldn't get the node.hasClass('jstree-open') yada yada to work right, but this is generally working up to the bit that's supposed to do the deleting

function customMenu(node) {
            //Show a different label for renaming files and folders
            var ID = $(node).attr('id');
            if (ID == "j1_1") {
                return items = {}; //no context menu for the root
            }
            var $mynode = $('#' + ID);
            var renameLabel;
            var deleteLabel;
            var folder = false;
            if ($mynode.hasClass("jstree-closed") || $mynode.hasClass("jstree-open")) { //If node is a folder
                renameLabel = "Rename Folder";
                deleteLabel = "Delete Folder";
                folder = true;
            }
            else {
                renameLabel = "Rename File";
                deleteLabel = "Delete File";
            }
            var items = {
                "rename" : {
                    "label" : renameLabel, 
                    "action": function (obj) {
                         //nothing here yet.
                    }
                },
                "delete" : {
                    "label" : deleteLabel,
                    "action": function (obj) {
                        //tree.delete_node($(node));
                        //this.remove(obj);
                        //$('#treeView').jstree('remove', $(node));
                        //nothing is working.
                    }
                }
            };

            return items;
        }

为方便起见,我把小提琴放在一起: http://jsfiddle.net/dpzy8xjb/
我不认为真的需要说我是没有超级经验的jQuery或处理第三方API,所以...要温柔。

I've put together a fiddle for your convenience: http://jsfiddle.net/dpzy8xjb/ I don't think it really needs to be said that I'm not super experienced with jQuery or dealing with third party APIs, so... Be gentle.

推荐答案

我向上帝发誓,除了在StackOverflow上发布问题之外,没有任何事情可以让我更快地找出问题。

I swear to god there is nothing that drives me to figure out a problem faster than posting it on StackOverflow.

修正:

       "delete": {
            "label": deleteLabel,
                "action": function (obj) {
                //tree.delete_node($(node));
                tree.delete_node($mynode); //<<--works.
        }

这篇关于jstree delete_node()未删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆