Fancy Tree,单击不同节点会自动折叠其他选定节点和子节点

时间:2014-08-22 00:24:05

标签: jquery fancytree

我在Jquery对话框中渲染由Fancy Tree转换的列表。我注意到,如果我选择一个子节点并关闭树意味着取消展开其父节点并关闭对话框。当我单击其他节点时重新打开对话框时,我看到其他所选节点将自动展开然后取消展开。

$("#errorCodes").fancytree({
    activeVisible: false, // Make sure, active nodes are visible (expanded).
    aria: false, // Enable WAI-ARIA support.
    autoActivate: false, // Automatically activate a node when it is focused (using keys).
    autoCollapse: false, // Automatically collapse all siblings, when a node is expanded.
    autoScroll: false, // Automatically scroll nodes into visible area.
    clickFolderMode: 3, // 1:activate, 2:expand, 3:activate and expand, 4:activate (dblclick expands)
    checkbox: false, // Show checkboxes.
    debugLevel: 0, // 0:quiet, 1:normal, 2:debug
    disabled: false, // Disable control
    generateIds: false, // Generate id attributes like <span id='fancytree-id-KEY'>
    idPrefix: "ft_", // Used to generate node id´s like <span id='fancytree-id-<key>'>.
    icons: false, // Display node icons.
    keyboard: true, // Support keyboard navigation.
    keyPathSeparator: "/", // Used by node.getKeyPath() and tree.loadKeyPath().
    minExpandLevel: 1, // 1: root node is not collapsible
    selectMode: 1, // 1:single, 2:multi, 3:multi-hier
    tabbable: false, // Whole tree behaves as one single control
    titlesTabbable: false // Node titles can receive keyboard focus
});
errorTree = $("#errorCodes").fancytree("getTree");

$("input[name=searchErrors]").keyup(function (e) {
    var match = $(this).val();
    if (e && e.which === $.ui.keyCode.ESCAPE || $.trim(match) === "") {
        $("button#btnResetSearchErrors").click();
        return;
    }

    var n = errorTree.applyFilter(match);
    $("button#btnResetSearchErrors").attr("disabled", false);
    $("span#matchesErrors").text("(" + n + " Results)");
}).focus();

$("button#btnResetSearchErrors").click(function (e) {
    $("input[name=searchErrors]").val("");
    $("span#matchesErrors").text("");
    errorTree.clearFilter();
}).attr("disabled", true);

$("input#hideModeErrors").change(function (e) {
    errorTree.options.filter.mode = $(this).is(":checked") ? "hide" : "dimm";
    errorTree.clearFilter();
    $("input[name=searchErrors]").keyup();
});

1 个答案:

答案 0 :(得分:0)

我通过下载最新版本的FancyTree 2.3.0解决了这个问题。问题是当点击节点并使用检查它时,它曾经成为活动行。因此,如果要扩展另一个根节点,它会自动扩展活动行所在的节点。