【问题标题】:Checking a checkbox node programmatically with jsTree使用 jsTree 以编程方式检查复选框节点
【发布时间】:2012-04-07 10:50:54
【问题描述】:

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

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

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

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

【问题讨论】:

标签: javascript jquery jstree


【解决方案1】:

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

【讨论】:

  • 我见过jeffery_the_wind,但是,它的用法不是很清楚。你能举个例子吗?例如,这个不起作用:$('.colors').check_node('li#tree_3'),其中 tree_3 是该节点的唯一标识符。 >>>TypeError: Object [object Object] 没有方法'check_node'。
  • @Raj ~ 好的,我检查了文档并编辑了答案。我建议您花点时间仔细阅读文档,我认为它会对您有很大的帮助。
  • @jeffery_the_wind 如何检查多个节点,我假设$.jstree._reference("#colors").check_node('#tree_3','#tree_4');
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-12
        • 2021-06-08
        • 2021-06-07
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        • 2013-02-03
        • 2019-07-16
        相关资源
        最近更新 更多