使用jsTree以编程方式检查复选框节点

Raj*_*Raj 3 javascript jquery jstree

在使用jsTree构建的树中,我将<a>标记中的文本放在变量中.我想检查那个节点.我怎么能这样做?

我目前正在使用jQuery找到该节点,并改变其类.但是,这不会通过使父类在其类中未确定来修复父节点.我尝试过$('.colors').jstree("checkbox_repair"),但似乎没有做任何事情.

如果有人能够真正回答这两个问题,那将会很棒,因为它们与同一个问题有关.

这是一个jsFiddle,说明问题 - > http://jsfiddle.net/thapar/5XAjU/

jef*_*ind 5

在js_tree有.check_node ( node ).uncheck_node ( node )功能,我想这是你所要求的东西.这里的文档是:http://www.jstree.com/documentation/checkbox

这是上面链接中的文档"如何执行操作"的摘录:

/* METHOD ONE */
jQuery("some-selector-to-container-node-here")
    .jstree("operation_name" [, argument_1, argument_2, ...]);

/* METHOD TWO */
jQuery.jstree._reference(needle)
    /* NEEDLE can be a DOM node or selector for the container or a node within the container */
    .operation_name([ argument_1, argument_2, ...]);
Run Code Online (Sandbox Code Playgroud)

所以我认为这种语法应该有效

$.jstree._reference(".colors").check_node('li#tree_3');
Run Code Online (Sandbox Code Playgroud)

此外,我不确定您是否应该使用类来引用您的树.可能使用ID引用您的树,然后使用以下语法:

$.jstree._reference("#colors").check_node('li#tree_3');
Run Code Online (Sandbox Code Playgroud)

//编辑:请记住,最新版本的jsTree不再具有名为_reference的函数.它被重命名为引用(没有前导下划线).(最后一次检查24/08/2015 15:45 by @ mkli90)链接:https://www.jstree.com/api/#/ f = $ .jstree.reference(needle)


小智 5

如果要在加载时检查jsTree节点,例如:

$(document).ready(function()
{
  $.jstree._reference('#menu').check_node('#pih2');
});
Run Code Online (Sandbox Code Playgroud)

这是行不通的.对我来说工作如下:

$(function () {
    $('#mainMenu1').bind('loaded.jstree', function(e, data){ //waiting for loading
          $.jstree._reference('#menu').check_node('#pih2');  //check node with id pih2
        $.jstree._reference('#menu').check_node('#pih6');  //check node with id pih6
  }); 
});
Run Code Online (Sandbox Code Playgroud)

我使用jsTree 1.0-rc3和JQuery 1.7.1.芦荟