2017-03-17 368 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,而不是根。 希望这是有帮助的。