【问题标题】:jstree disable checkboxjstree 禁用复选框
【发布时间】:2012-01-19 05:07:43
【问题描述】:

我目前正在使用 JS Tree 插件和相关复选框插件开发一些 POC。 对于某些节点,我需要默认选中复选框并禁用任何进一步的选择。我找到了隐藏复选框的功能

.bind("load_node.jstree", function (e, data) {
          $(this).find('li[rel!=file]').find('.jstree-checkbox:first').hide();
      });

我不想完全隐藏复选框,而是想找到一种方法来禁用某些节点的复选框

【问题讨论】:

  • 考虑重写问题,以便更难理解。

标签: javascript checkbox jstree


【解决方案1】:

您需要定义一个“禁用”类型(使用类型插件),然后将该类型分配给所需的节点。

以这个“禁用”类型定义为例:

           "types" : {
                "types": {
                "disabled" : { 
                      "check_node" : false, 
                      "uncheck_node" : false 
                    } 
                }
            }

和类型分配:

$.jstree._reference('#tree').set_type("disabled", "#node5");

关于类型插件的更多信息可以找到here,您也可以查看this google group with more info on disabling checkboxes

希望对你有帮助!

【讨论】:

    【解决方案2】:

    感谢 mcabral 和 Tomasz 的回答。它帮助我取得了正确的结果。但是,我需要添加一些额外的行以使其正常工作。这是我所做的:

    您需要向 <li> 标签添加两个属性,即 rel='disable' 以指示 jstree 这将是复选框的新类型,而不是默认值和 class='jstree-checked' 属性,它将预先检查加载树时的复选框。

    $rel = ( 'if the checkbox need to be pre-checked' )? 'rel="disabled" class="jstree-checked"' : '';
                echo '<li id="checkbox_id" '. $rel .'>';
    

    然后根据前面的答案,您需要定义 rel 属性中使用的“禁用”类型,如下所示:

    .jstree({
                        "types" : 
                        {
                            "types" : {
                                "disabled" : {
                                     "check_node" : false, 
                                     "uncheck_node" : false 
                                }
                            }
                        },
            "plugins" : ["themes","html_data","ui","crrm","types", "checkbox"],
                        "checkbox" : { "two_state" : true },
        })
    

    【讨论】:

      【解决方案3】:

      如果您的项目是静态的;例如....总是像我的场景一样。

      我只是简单地用 CSS 隐藏了该项目上的复选框。当我进行服务器端检查时,任何恶意更改它的尝试都将被丢弃。

      #my_item_id .jstree-checkbox {
          display: none;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多