gpt4 book ai didi

javascript - 如何只为超过 2 级的节点打开 jsTree 上下文菜单?

转载 作者:行者123 更新时间:2023-11-30 09:43:46 25 4
gpt4 key购买 nike

所以我的问题是我只需要在我的树中嵌套在第 2 层或更深层之后的节点上有上下文菜单。例如:

enter image description here

我想在节点“1.1.1”、“1.1.1.1”等上使用默认上下文菜单...但我不希望在右键单击“1”或“时出现此上下文菜单1.1".

我应该如何选择在哪些节点上出现,在哪些节点上不出现?

我找到了一些这样的例子:

function customMenu(node) {
//Show a different label for renaming files and folders
if ($(node).hasClass("jstree-closed") || $(node).hasClass("jstree-open")) { //If node is a folder
var renameLabel = "Rename Folder";
}
else {
var renameLabel = "Rename File";
}
var items = {
"upload" : {
"label" : "Upload File",
"action" : function () { ... }
},
"rename" : {
"label" : renameLabel, //Different label (defined above) will be shown depending on node type
"action" : function () { ... }
},
"delete" : {
"label" : "Delete File",
"action" : function () { ... }
}
};

//If node is a folder do not show the "delete" menu item
if ($(node).hasClass("jstree-closed") || $(node).hasClass("jstree-open")) {
delete items.remove;
}

return items;
}

我需要这样的东西,但我不知道如何检查我的文件夹嵌套在哪一层。我的示例中的检查是针对“文件夹或文件”的。

有人知道吗?

最佳答案

我不认为 jsTree 有开箱即用的方法,因此您可以使用以下代码抑制显示在级别 1 和 2 的节点的菜单。检查演示 - Fiddle Demo .

.on('show_contextmenu.jstree', function(e, reference, element) {

if ( reference.node.parents.length < 3 ) {
$('.vakata-context').remove();
}

});

关于javascript - 如何只为超过 2 级的节点打开 jsTree 上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com