Vis.js时间轴-如何折叠组而不嵌套

时间:2018-12-10 22:23:20

标签: javascript vis.js vis.js-timeline

我希望能够通过单击组标题(或其旁边的图标等)来折叠或切换时间线上特定组的可见性

为实现类似功能,我所看到的所有示例都需要使用嵌套组,然后折叠该组,但是嵌套模型不适用于我们的数据,我们只希望一次折叠一个。 / p>

我已经知道如何通过设置className将组显示为在初始化时折叠了,但是我还没有弄清楚如何动态切换组标签+行上的className。

1 个答案:

答案 0 :(得分:1)

我使用thise功能来删除/显示组中的所有项目

    function plannerCloseGroup(groupID){
    // retrieve all items having a property group with value groupID
    var itemsFiltered = items.get({
      filter: function (item) {
        return (item.group == groupID);
      }
    });
    closedItems[groupID] = itemsFiltered;
    items.remove(itemsFiltered);
    $("#plannerMinus_" + groupID).addClass("hidden");
    $("#plannerMinus_" + groupID).removeClass("display");
    $("#plannerPlus_" + groupID).removeClass("hidden");
    $("#plannerPlus_"+ groupID).addClass("display");
}

function plannerOpenGroup(groupID){
    items.update(closedItems[groupID]);
    $("#plannerMinus_" + groupID).addClass("display");
    $("#plannerMinus_" + groupID).removeClass("hidden");
    $("#plannerPlus_" + groupID).removeClass("display");
    $("#plannerPlus_" + groupID).addClass("hidden");
    delete closedItems[groupID];
}

closedItems是一个全局数组

plannerMinus和plannerPlus是组名称旁边的图标

在定义组时,我会在内容中包含以下代码,其中$ employeeID也是我的组ID

'<span id="plannerPlus_'.$employeeID.'" class="hidden"><img src="images/planner-plus-grey.gif" width=10 height=10 onclick="plannerOpenGroup('.$employeeID.')"> </span><span id="plannerMinus_'.$employeeID.'" class="display"><img src="images/planner-minus.gif" width=10 height=10 onclick="plannerCloseGroup('.$employeeID.')"> </span>'

然后看起来像这样 open group closed group