是否可以使用搜索插件正确导航键(热键插件)(“show_only_matches”:true)

时间:2012-01-10 23:26:08

标签: javascript jstree

我试图通过jsTree导航并使用“show_only_matches”参数搜索插件。但是当我使用向上和向下箭头在树中导航时,可以选择隐藏的节点,但我想要遍历“可见”节点。

1 个答案:

答案 0 :(得分:0)

请参阅此jsFiddle获取答案:http://jsfiddle.net/G789k/27/

我只是在向下键上做了,所以你需要调整它。几乎完全相同 - 只需将_get_next更改为_get_prev

以下是代码的相关部分,仅供参考:

"search" : {
  "case_insensitive" : true,
  "show_only_matches": true         
},
"ui" :{
  "select_limit" : 1,
},
// overriding hotkey
'hotkeys': {
  'down': function() {

      // most of this stolen from jstree.js source
      var o = this.data.ui.hovered || this.data.ui.last_selected || -1,
          node = this._get_next(o);

      this.hover_node(node);

      // call self if selected node is hidden
      // note: this is a somewhat dangerous (and deprecated) way to do recursion.
      // ultimately, it would be better if your down function was
      // defined elsewhere and called here as needed.

      if ( node.length && node.is(':hidden')) arguments.callee.call(this);

      return false;
  }   
}

我还认为默认功能 - 导航到隐藏节点 - 是不可取的,jstree dev应该修复它。考虑将其作为错误修正/请求提交给他。