Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅为级别2以外的节点打开jsTree contextmenu?_Javascript_Jquery_Jstree - Fatal编程技术网

Javascript 如何仅为级别2以外的节点打开jsTree contextmenu?

Javascript 如何仅为级别2以外的节点打开jsTree contextmenu?,javascript,jquery,jstree,Javascript,Jquery,Jstree,所以我的问题是,我只需要在嵌套在第二层或更深层的树节点上设置contextmenu。例如: 我想在节点“1.1.1”、“1.1.1.1”等上使用默认上下文菜单。。。但我不希望右键单击“1”或“1.1”时出现此上下文菜单 我应该如何选择在哪些节点上显示,哪些节点不显示 我发现了一些类似的例子: function customMenu(node) { //Show a different label for renaming files and folders if ($(node).

所以我的问题是,我只需要在嵌套在第二层或更深层的树节点上设置contextmenu。例如:

我想在节点“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级节点的菜单显示。检查演示-

.on('show_contextmenu.jstree',函数(e,引用,元素){
if(reference.node.parents.length<3){
$('.vakata context').remove();
}
});  

我认为jsTree没有现成的方法,因此您可以使用下面的代码抑制1级和2级节点的菜单显示。检查演示-

.on('show_contextmenu.jstree',函数(e,引用,元素){
if(reference.node.parents.length<3){
$('.vakata context').remove();
}
});  
.on('show_contextmenu.jstree', function(e, reference, element) {

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

});