JsTree打开一个节点,然后选择一个子节点(使用json_result)

Joe*_*Joe 7 jquery jstree asp.net-mvc-2

我在一个MVC2项目中使用的JsTree遇到了麻烦.我想创建一个函数来取消选择/关闭树上的所有节点.然后打开一个特定的节点,并选择一个特定的子节点(我有两个Id值).

问题是select_node总是在open_node完成之前被调用,因此没有选择节点,因为树尚未加载数据,并且节点ID不存在.

我第一次尝试这个功能.

$('#demo3').jstree('deselect_all');
$('#demo3').jstree('close_all');
$('#demo3').jstree("open_node", $('#ParentId'), false, true); 
$('#demo3').jstree("select_node", $('#ChildId'));
Run Code Online (Sandbox Code Playgroud)

然后我尝试将代码移动到select_node和move_node树的绑定,但没有运气.目前我被困在使用setTimeout(),这是一个可怕的解决方案.

有谁知道如何告诉树只在打开完成后选择节点?

Nik*_*kis 8

您可以尝试传递一个选择节点作为回调的函数,如:

$('#demo3').jstree('open_node', '#ParentID', function(e, data) {
    $('#demo3').jstree('select_node', '#ChildId');
}, true);
Run Code Online (Sandbox Code Playgroud)

select_node一旦open_node返回成功,就会调用这种方式.