簡體   English   中英

如何在jstree中獲取選定節點的索引

[英]How to get the index of selected nodes in jstree

我想使用jstree讓用戶選擇節點並使用drag'n'drop插件對樹重新排序。 這是展示當前行為的jsfiddle:

$("#ProductInterests").jstree({
    core: { themes: { icons: false },"check_callback" : true },
    checkbox : { tie_selection : false },
    plugins: ["themes", "checkbox","dnd"]
});

$('button').click(function () {
    alert($("#ProductInterests").jstree(true).get_checked().join(','));
});

http://jsfiddle.net/dt2rk2d1/

目前,所有選擇的ID均按照其選擇的順序進行報告。 是否可以按照它們在樹中出現的順序來獲取它們? 即使在用戶拖放項目后?

我想這取決於您在樹中出現的意思。 如果您的意思是外觀-您可以使用通用選擇器並收集ID:

$("#ProductInterests").find('.jstree-checked').closest('.jstree-node')
    .toArray().map(function (v) { return v.id; })

但是,這不會返回不可見的節點(由於您正在使用three_state,因此這會很多)。

如果這樣做不合適,則可以使用遞歸函數遍歷內部樹模型,並以真實順序收集節點,無論是否可見。 為此,您需要檢查: $("#ProductInterests").jstree(true)._model.data['#'].children

這是使用上述方法更新的小提琴(隨意優化功能,不是很優雅):
http://jsfiddle.net/dt2rk2d1/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM