2015-02-09 60 views
2

我使用jstree,內置搜索插件和jstree網格插件。我想要做的是使用show_only_matches選項進行搜索,以便只顯示匹配的節點,其餘都是隱藏的。這是我的問題的地方。jstree網格問題,當試圖只顯示匹配

我使用jstree網格插件,即使搜索工作正常,電網故障。它不會像你期望的那樣隱藏額外的行信息。例如,有一個根節點Root,它有3個子節點; child1,child2,child3,如果您搜索child3,則會打開Root並且只​​顯示child3。但是,仍會顯示child1和child2的網格值。

下面的圖像鏈接就是一個例子。搜索test2只顯示test2孩子,但在每個學校下面都有2個測試,隱藏的測試信息仍在顯示。

http://i.stack.imgur.com/84Q65.png

回答

2

這裏是我現在用的顯示/隱藏相應的網格值,全部是在改變了搜索功能的位。

$('#treeSearch').keyup(function() { 
     if(to) { clearTimeout(to); } 
     to = setTimeout(function() { 
      var v = $('#treeSearch').val(); 
      $('#jstree').jstree(true).search(v); 

      //hide/show grid values for nodes affected by searching 
      var hidden = $('ul li:hidden'); 
      var visible = $('ul li:visible'); 

      $.each(hidden, function(i){ 
       $('div[id*=' + hidden[i].id + ']').hide(); 
      }); 

      $.each(visible, function(i){ 
       $('div[id*=' + visible[i].id + ']').show(); 
      }); 

     }, 500); 
    });