【问题标题】:Jquery Dynatree , only the child node is selectable?Jquery Dynatree,只有子节点是可选的?
【发布时间】:2013-08-14 04:06:05
【问题描述】:

我有一个具有多个父节点和子节点的 dynatree。我正在获取 json 数据并传递给 dynatree 以形成树结构。

$(document).ready(function() {
                $("#tree").dynatree({
                checkbox: true,
                classNames: {checkbox: "dynatree-radio"},
                hasChildren:true,
                selectMode: 1,
                onDblClick: function(node, event) {
                    node.toggleSelect();
                },
                onKeydown: function(node, event) {
                    if( event.which == 32 ) {
                    node.toggleSelect();
                    return false;
                    }
                },
      <%=codesJSON%>
            });
    });

可以使用单选按钮选择节点。 当树完全加载时,我只想选择子节点,而父节点只是为了可见性。我尝试使用不可选择的属性,但它似乎不适用于我的情况。

有没有办法做到这一点。

请帮忙谢谢...

为它设置一个 jsfiddle - http://jsfiddle.net/jegadeesb/zRPfx/2/

【问题讨论】:

    标签: jquery jquery-plugins dynatree jquery-dynatree


    【解决方案1】:

    在节点定义中设置选项isFolder: trueunselectable : true

    $(function() {
        // Variant 1:
        $("span.dynatree-edit-icon").live("click", function(e) {
            alert("Edit " + $.ui.dynatree.getNode(e.target));
        });
        $("#tree").dynatree({
            checkbox : true,
            classNames : {
                checkbox : "dynatree-radio"
            },
            onActivate : function(node) {
                // $("#info").text("You activated " + node);
            },
            onRender : function(node, nodeSpan) {
                $(nodeSpan)
                .find('.dynatree-icon')
                .before('<span class="dynatree-icon dynatree-edit-icon"></span>');
            },
            // Variant 2:
            onClick : function(node, e) {
                if ($(e.target).hasClass("dynatree-edit-icon")) {
                    $("#info").text("You clicked " + node + ",  url=" + node.url);
                }
            },
            children : [{
                title : "Item 1"
            }, {
                title : "Folder 2",
                isFolder : true,
                unselectable : true,
                children : [{
                    title : "Sub-item 2.1"
                }, {
                    title : "Sub-item 2.2"
                }]
            }, {
                title : "Item 3"
            }]
        });
    });
    

    演示:Fiddle

    来自the doc

    isFolder: false, // 使用文件夹图标。该节点也是可扩展的,但 无法选择。

    unselectable: false, // 阻止选择。

    【讨论】:

    • @Arun 我试过你的例子。我的要求是只选择子节点而不是父节点。通过将 isFolder 设置为 false ,似乎不能满足我的要求。
    • @jegadees 它应该为父元素设置为 true
    • 我已经为它设置了一个jsfiddle。jsfiddle.net/jegadeesb/zRPfx请帮忙看看。
    猜你喜欢
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多