2017-03-17 91 views
1

我正在使用JSTree來顯示一個小的類似Windows資源管理器的外觀,一切都很完美,但我也必須實現排序選項也有,無論如何,我可以讓我的樹排序順序動態改變?例如,我可以有一個按鈕,允許用戶根據名稱(asc或desc),大小,更改日期甚至類型對內容進行分類。我該如何執行它? 我認爲JSTree排序插件有問題,或者至少我不明白它是如何工作的!動態更改JSTree排序順序

這是我爲了改變做排序基於用戶交互:

treeInst = $('#divWindowsExplorer').jstree(true); 
var root = treeInst.get_node('j1_1'); 
$.jstree.defaults.sort = function (a, b) { 
    return this.get_text(a) < this.get_text(b) ? -1 : 1; 
}; 
$("#divWindowsExplorer").jstree(true).sort(root, true); 
$("#divWindowsExplorer").jstree(true).redraw_node(root, true); 

回答

1

嘗試使用排序選項。

$("#plugins5").jstree({ 
    "plugins" : [ "sort" ], 
    'sort' : function(a, b) { 
     // you can do custom sorting here 
     // based on your user action you can return 1 or -1 
     // 1 show on top -1 for show bottom 
    } 
    }); 

欲瞭解更多信息時,我們稱之爲排序click here

+0

是的我在初始化中有這個,但問題是我想根據用戶交互來更改排序邏輯,例如從名稱升序更改爲名稱降序,我應該如何執行它? –

+0

是的,我已經訪問過上面的鏈接。我已經更新了我的問題,請大家看看。 –

+0

我認爲(選擇器).jstree(tree).sort(root,true)實際上什麼也沒做!爲什麼? –

0

根節點是不行的,我做我的排序樹動態地調用排序和redraw_node功能與我的樹的第一個節點的ID,而不是根。 希望這是有幫助的。