0

我正在使用 vis-timeline 7.4.7。

有一个功能,该网站说:

当时间线被配置为可编辑时(可选择和可编辑的选项都为真),用户可以: ... 通过按住 ctrl 键在空白处拖动来创建一个新的范围项...

由于我正在使用其他功能,我需要使用 options.add=true,以及可编辑和可选择的。

我的问题是:有没有办法禁用“使用 ctrl/meta + 单击并拖动添加新项目”功能?

我发现它是由 Input.domHandler -> ... -> 识别 -> ... -> 传播处理程序 -> _onDragStart -> _onDragStartAddItem 处理的,但我找不到设置选项来禁用它的方法。

注意:隐藏新的蓝色元素(内置文本显示“新项目”)将是一个很好的解决方法,但新元素没有任何特殊类或任何我可以使用 CSS 定位的东西。(该项目不会保持活动状态,因为我可以使用 onAdd 函数捕获它,但它仅在用户释放鼠标按钮后运行)

我目前的解决方法是我将我自己的类添加到我创建的所有元素中,这样我就可以使用 :not() 来匹配新元素。嗯......不是最好的解决方案:(

注意2:它不仅发生在 ctrlKey 上,而且发生在 metaKey 上

4

1 回答 1

0

我如何绕过它是这样的。

有点hacky。在onAdd事件监听器上,我做了以下事情。


function isUUID(uuid) {
    var regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
    return regex.test(uuid);
}

    onAdd: (item, callback) => {
        if (item.content == 'new item' && isUUID(item.id) ) {
            callback(null)
        } else {
            //emits('onAdd', item);
            callback(item);
        }


于 2021-12-09T15:51:44.100 回答