[英]JQuery function to find state of a node in jstree?
我在檢索 jstree 中選定節點的 state 時遇到困難(使用 JSON 數據)。 這是我嘗試實現的方式:
$(function () {
$("#tree").jstree({
"json_data" : {
"data" : [
{
data : "/",
attr : { "id" : "root"},
state : "closed",
"children" : [ { "data" : "child1",
"attr" : { "id" : "child1.id" },
"children" : [ ] }
]
},
]
},
"plugins" : [ "themes", "json_data", "crrm", "ui" ]
})
.bind("select_node.jstree",function(event, data) { . . . }
根據我的研究,我發現data.rslt.obj.attr("state")
應該返回state("open" or "closed")
但它返回未定義。 你能幫我確定我在這里缺少什么嗎?
正如@digringo
$('#tree').jstree(true).get_state()
這將返回一個 object,其中包括打開的 <li <li>
id 數組和選擇的<li>
id 數組。
然后您可以遍歷數組以查看特定子項是否已打開和/或已選中。
在AFAICT中,jsTree不會將狀態存儲在任何地方(尤其是在查詢源代碼之后),而是使用節點的類來確定狀態。
因此,我最好的建議是執行以下操作:
(...)
.bind("select_node.jstree", function (e, data) {
var isOpen = data.rslt.obj.hasClass("jstree-open");
console.log(data, 'selection is ' + (isOpen ? 'open' : 'closed'));
});
使用
$('#tree').jstree(true).get_state()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.