2016-03-05 72 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和...