保持单击的节点处于选中状态

keep clicked node as selected

本文关键字:于选中 状态 节点 单击      更新时间:2023-09-26

我有一个正在运行的引导树视图插件。目前,它的工作方式类似于用户单击节点一次。它选择节点。但若用户在同一节点上再次单击它。它取消选择该节点。

我尝试将其更改为:如果用户单击节点,它将选择该节点。直到用户单击任何其他节点,但如果用户多次单击同一节点。它应该保持选中状态。它不应该被取消选择。

我希望我的问题已经讲清楚了。

https://jsfiddle.net/evk9yfum/

   var initSelectableTree = function () {
            return $('#treeview-selectable').treeview({
                levels: 1,
                data: defaultData,
                enableLinks: true,
                onNodeSelected: function (event, node) {
                    //$('.contanter').css('background','green');
                },
                onNodeUnselected: function (event, node) {
                    //$('.contanter').css('background','red');
                }
            });
        };
        var $selectableTree = initSelectableTree();
    });

下面的代码片段将为您提供帮助。希望这对你有帮助。

var initSelectableTree = function () {
    return $('#treeview-selectable').treeview({
        levels: 1,
        data: defaultData,
        enableLinks: true,
        onNodeSelected: function (event, node) {
            $(this).treeview('unselectNode', [node.nodeId, { silent: false }]);
        },
        onNodeUnselected: function (event, node) {
            $(this).treeview('selectNode', [node.nodeId, { silent: true }]);
        },
        onNodeCollapsed:function(event, node){
            $.each(node.nodes, function(){
                if(this.state.selected){
                   $('#treeview-selectable').treeview('selectNode', 
                                  [ node.nodeId, { silent: true } ]); 
                   return;
                }
            });     
        }
    });
};

更新Fiddle:https://jsfiddle.net/evk9yfum/9/