簡體   English   中英

jsTree Contextmenu獲取選定的節點ID

[英]jsTree Contextmenu get selected node id

嗨,我目前在jsTree上下文菜單上遇到問題。 我想獲取所選節點的ID,但是我查看了許多解決方案,但沒有一個起作用。 我的代碼如下。

我使用tree.get_selected($node)函數確實返回了所選節點的對象,但是我正在努力訪問該對象的id參數。 在下面,我使用tree.get_selected($node).id但它說它是undefined但是當我看控制台時,它顯然不是。

誰能幫我解決我的問題?

$("#tree_1").jstree({
    "core" : {
    "themes" : {
        "responsive": false
    },
    // so that create works
    "check_callback" : true,
    'data' : {
        'url' : function (node) {
                if(node.id=='#') {
                    var id = 0; 
                } else {
                    var id = node.id;   
                }
                return 'organisation/getOrganisationLocations/'+id;
            }
        }
    },
    "types" : {
        "default" : {
            "icon" : "fa fa-folder icon-state-warning icon-lg"
        },
        "file" : {
            "icon" : "fa fa-file icon-state-warning icon-lg"
        }
    },
    "state" : { "key" : "demo3" },
    "plugins" : [ "dnd", "state", "types", "contextmenu" ],
    "contextmenu":{         
    "items": function($node) {
            var tree = $("#tree_1").jstree(true);
            return {
                "Create": {
                    "separator_before": false,
                    "separator_after": false,
                    "label": "Create",
                    "action": function (obj) { 
                        $node = tree.create_node($node);
                        tree.edit($node);

                        console.log(tree.get_selected($node).id);
                    }
                },
                "Rename": {
                    "separator_before": false,
                    "separator_after": false,
                    "label": "Rename",
                    "action": function (obj) { 
                        tree.edit($node);
                    }
                },
                "Remove": {
                    "separator_before": false,
                    "separator_after": false,
                    "label": "Remove",
                    "action": function (obj) { 
                        tree.delete_node($node);
                    }
                }
            };
        }
    }
});

這種方法對我有用:

$(node).attr('id')

在jstree聲明上方聲明您的ID(在第1行,輸入var id;)

然后,在data.url函數中,從分配給id的每一行之前刪除var。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM