내 요구 사항 중 하나는 jstree에서 선택된 노드의 모든 자식 노드를로드하고 그 아래에있는 리프 노드의 모든 앵커 요소 ID를 반환하는 것입니다. 선택한 노드를 open_all 메서드에 전달하면 open_all 이벤트에서 리드 노드 ID를 반환하므로이 작업을 수행 할 수 있습니다. 그러나, 내 문제는 선택된 노드가 루트가 아닌 노드가 아닌 경우 open_all 이벤트가 두 번 발생하는 것입니다. 선택한 노드가 루트 또는 리프이면 제대로 작동합니다. 어떤 도움이라도 대단히 감사합니다.jstree open_all 이벤트가 두 번 발생합니다.
$tree
.bind("loaded.jstree", function(event, data) {
//alert("Tree loaded");
})
.bind("select_node.jstree", function(event, data) {
data.inst.open_all(data.rslt.obj, true);
})
.bind("check_node.jstree", function(event, data) {
//checkboxes are enabled on some pages
data.inst.open_all(data.rslt.obj, true);
})
.bind("open_all.jstree", function(event, data) {
//get all ids of leaf nodes under selected node if selected node is
//non-leaf node. If selected node is a leaf node return it's id.
//alert(leaf_ids);
//**Here is my problem:** The alert box pops up twice if
//open_all was passed a non-leaf node other than root.The first time
//ids are empty but the second time I see the ids.
})
.jstree({
"plugins": plugins_include,
"core": core_options,
"html_data": html_data,
"themes": {
"theme": "classic",
"dots": false,
"icons": false
},
"strings": { loading: "Loading..." },
"checkbox": {
"override_ui": true
},
"ui": { "select_multiple_modifier": false }
});