1
我試圖通過jsTree和搜索插件與「show_only_matches」參數使用導航。但是當我使用向上和向下箭頭瀏覽樹時,可以選擇隱藏節點,但是我想穿過「可見」節點。是否可以使用正確的導航鍵(熱鍵插件)與搜索插件(「show_only_matches」:真)
我試圖通過jsTree和搜索插件與「show_only_matches」參數使用導航。但是當我使用向上和向下箭頭瀏覽樹時,可以選擇隱藏節點,但是我想穿過「可見」節點。是否可以使用正確的導航鍵(熱鍵插件)與搜索插件(「show_only_matches」:真)
的答案看到這個的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開發應該修復它。考慮將它作爲錯誤修正/請求提交給他。
你可以在jsFiddle上設置演示嗎? – glortho 2012-01-11 16:32:43
花了一些時間。請查看http://jsfiddle.net/G789k/25/如果在輸入字段中輸入「Bas」並單擊過濾按鈕。嘗試使用「向下箭頭」鍵時。在第一次按下鍵盤事件時,將會選擇根基本文件夾。在第二次按下鍵盤事件時,將選擇登錄文件夾(但它是隱藏的!)。在第三次按鍵事件時,將選擇基本文件夾(位於基本文件夾中)。 – 2012-01-11 18:26:55
我明白了。應該很容易覆蓋箭頭鍵跳過隱藏的節點。 (另一種選擇是修改jstree源代碼,但如果可以,我會避免這種情況。)現在我將處理它併爲您解決它... – glortho 2012-01-11 18:49:25