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

时间:2012-04-07 10:50:54

标签: javascript jquery jstree

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

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

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

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

4 个答案:

答案 0 :(得分: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, ...]);

所以我觉得这个语法应该可行

$.jstree._reference(".colors").check_node('li#tree_3');

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

$.jstree._reference("#colors").check_node('li#tree_3');

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

答案 1 :(得分:5)

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

$(document).ready(function()
{
  $.jstree._reference('#menu').check_node('#pih2');
});

它不起作用。对我来说工作如下:

$(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
  }); 
});

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

答案 2 :(得分:0)

在当前的jstree版本中,以下语法有效:

$("#my_tree").jstree("check_node", node_id);

答案 3 :(得分:0)

我想添加这个解决方案,function YourOtherComponent(){ const [sidebar, setSidebar] = useState(false);//have your state here render() { <Navbar sidebar={sidebar} setSidebar={setSidebar}/>//pass it down to your Navbar component return ( <div className="container"> <div className="row"> <div className="col-6 offset-1"> <h1 className={`${sidebar && "SET YOUR CLASS HERE"}`}>Add new product</h1> {//you could add a class when sidebar is true} <input type-"text" className="grey-text"/> </div> </div> </div> )}} 函数与 select_node 的功能相同。我们可以按如下方式使用它;

check_node

您可以使用它来选择数组中的多个节点或单个节点。