2016-03-05 73 views
1

我有一个树形结构,其中所有树节点都是父级和子文件夹。我想显示用户试图展开的文件夹中的文件。因此,用户用户展开一个节点,它显示了另一个div中父节点的子节点(子文件夹)和文件。始终触发jstree事件

我正在使用“open_node.jstree”事件加载一些其他脚本。但是,如果节点没有子节点,则“open_node.jstree”不会触发。无论节点是否有子节点,如果节点扩展,我想触发一个事件。

我的代码如下

var dispJSTree = function() { 
      $("#treedisp").jstree({ 
       'core': { 
        'data': { 
         "type": "POST", 
         "dataType": "json", 
         "contentType": "application/json;", 
         "url": "/xyz/example.asmx/GetJsFoldersTree", 
         "data": function (node) { 
          var nodeid = (node.id == "#") ? "" : node.id; 
          var originalSrc = node.original; 
          var moduleId = ""; 
          if (typeof (originalSrc) === 'undefined' || originalSrc == null || originalSrc == "") { 
           nodeid = ""; 
          } 
          else { 
           nodeid = (typeof (originalSrc.nodeid) === 'undefined' || originalSrc.nodeid == null || originalSrc.nodeid == "") ? "" : originalSrc.nodeid; 
           moduleId = (typeof (originalSrc.moduleId) === 'undefined' || originalSrc.moduleId == null || originalSrc.moduleId == "") ? "" : originalSrc.moduleId; 
          } 

          return JSON.stringify({ id: nodeid, moduleId: moduleId }); 
         } 
        } 
       }, 
       'plugins': ['contextmenu'], 
       'contextmenu': { 
        'items': customMenu 
       },     
      }).on('open_node.jstree', function (e, data) { 
       var folderId = data.node.original.id; 
       var moduleId = data.node.original.moduleId; 
       getFiles(folderId, moduleId, filesDispDiv); 
      }); 
     } 

我唯一担心的是“open_node.jstree”触发只有节点有子节点。否则它不会被触发。如果节点被展开,我就可以触发一个事件。

PL给出一个解决方案

+0

如何显示无子节点可以打开? –

+0

我不需要显示节点(不包含子节点的空节点),但是我需要触发一个事件,该事件将触发其他一些脚本来执行其他操作。 – Hemanth

+0

你可以使用'select_node'事件吗? –

回答

1

最后我找到了解决方案。事件“load_node.jstree”总是触发器,而不管是否包含子节点。

$("#treedisp").jstree().on('load_node.jstree', function (e, data) { 
        var folderId = data.node.id; 
        getFolderFiles(folderId, userOrOrgProfId, filesDispDiv); 
       }) 
0

的情况是这样,我把手上的点击事件

$("#mytree").on("click", ".jstree-anchor", function(e) { 
      var obj = $("#mytreet").jstree(true).get_node($(this));   
    }); 

你不能使用obj.id访问您点击节点ID和...