2012-01-10 15 views
1

jsTreeでナビゲーションを使用し、 "show_only_matches"パラメータで検索プラグインを使用しようとしています。しかし、上下の矢印を使用してツリーをナビゲートすると、隠れノードを選択できますが、「可視」ノードを歩きたいです。検索プラグイン( "show_only_matches":true)で正しくナビゲーションキー(ホットキープラグイン)を使用することは可能ですか?

+1

jsFiddleでデモをセットアップできますか? – glortho

+0

それは時間がかかりました。 http://jsfiddle.net/G789k/25/を見てください。入力欄に "Bas"と入力し、フィルターボタンをクリックしてください。ときに "矢印ダウン"キーを使用してみてください。最初のキーダウンイベントでは、ルート基本フォルダが選択されます。 2番目のキーダウンイベントでは、ログインフォルダが選択されます(ただし、非表示になっています!!!)。 3回目のキーダウンイベントでは、Basicフォルダ(Basicフォルダにあります)が選択されます。 –

+0

私は参照してください。隠しノードをスキップするために矢印キーをオーバーライドするのに十分なはずです。 (他のオプションは、jstreeのソースを変更することですが、できればそれを避けることにします)。私はそれを今作業して、あなたのために手に入れます... – glortho

答えて

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のは、それを修正する必要があります

はここでFYI、コードの関連する部分です。彼にバグ修正/要求として提出することを検討してください。

関連する問題