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

Checking a checkbox node programmatically with jsTree

本文关键字:检查 复选框 节点 方式 编程 jsTree 使用      更新时间:2023-09-26

在用jsTree构建的树中,<a>标记中的文本位于一个变量中。我想检查该节点。我该怎么做?

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

如果有人能同时回答这两个问题,那就太好了,因为它们与同一个问题有关。

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

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的函数。它被重命名为引用(没有前导下划线)。(最后一次检查时间:2015年8月24日15:45由@mkli90)链接:https://www.jstree.com/api/#/?f=$.jstree.reference(针)

如果您想在加载时检查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。芦荟

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

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

我想添加这个解决方案,select_node函数执行与check_node相同的功能。我们可以如下使用它;

$('#jstree_id').on('loaded.jstree', function() {
    $("#jstree_id").jstree("select_node", ["list of nodes go here"]);
});

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