为什么我的节点悬停弹出窗口在 vis.js 网络中不起作用?

2024-01-02

我遇到一个问题,尽管在节点对象中包含“标题”属性,但当我将鼠标悬停在节点上时,没有显示包含标题内容的弹出窗口。

以下是我的选择以及我如何设置网络。

setUpNetwork(){
    let container = document.getElementById('mynetwork');
    //These options dictate the dynamic of the network
    let options = {
        nodes: {
            shape: 'box'
        },
        interaction: {
            dragNodes: false,
            dragView: false,
            hover: true
        },
        layout: {
            randomSeed: undefined,
            improvedLayout: true,
            hierarchical: {
                enabled: true,
                levelSeparation: 180,
                nodeSpacing: 180,
                edgeMinimization: true,
                parentCentralization: true,
                direction: 'UD', // UD, DU, LR, RL
                sortMethod: 'directed' // hubsize, directed
            }
        },
        physics: {
            enabled: false
        }
    }
    // initialize your network!
    this.network = new vis.Network(container, this.data, options);
}

当我将一个节点添加到网络的节点列表中时,这是我的结构:

addNode(node: any){
    try {
        this.data.nodes.add({
            id: node.id,
            color: node.color,
            title: node.title,
            label: node.label
        });
        this.network.fit();
    }
    catch (err) {}
}

我运行代码的环境使得很难实时提供此问题的示例。网络中的其他所有内容都工作正常(标签、id、颜色),只是当我将鼠标悬停在节点上时标题不起作用。

EDIT:

我从以下位置复制了这段代码这个例子 http://visjs.org/examples/network/events/interactionEvents.html来自 vis.js,弹出窗口正在工作。

// create an array with nodes
var nodes = new vis.DataSet([
    {id: 1, label: 'Node 1', title: 'I have a popup!'},
    {id: 2, label: 'Node 2', title: 'I have a popup!'},
    {id: 3, label: 'Node 3', title: 'I have a popup!'},
    {id: 4, label: 'Node 4', title: 'I have a popup!'},
    {id: 5, label: 'Node 5', title: 'I have a popup!'}
]);

// create an array with edges
var edges = new vis.DataSet([
    {from: 1, to: 3},
    {from: 1, to: 2},
    {from: 2, to: 4},
    {from: 2, to: 5}
]);

// create a network
var container = document.getElementById('mynetwork');
var data = {
    nodes: nodes,
    edges: edges
};
var options = {interaction:{hover:true}};
this.network = new vis.Network(container, data, options);

我尝试在我的环境中仅使用这个;但是,弹出窗口不会像示例中那样显示。我知道我的悬停事件有效,因为当我将鼠标悬停在节点上时,我包含了以下代码以打印到控制台:

this.network.on("showPopup", function (params) {
    console.log("DO SOMETHING");
})

我在这里缺少一些选项设置吗?尽管在我的节点对象中包含“title”属性,但为什么我的悬停弹出窗口不显示,是否还有其他问题?


没有显示任何内容,因为您正在使用 event on("showPopup")。您必须使用 on("hoverNode")。所以使用

network.on("hoverNode", function(){
  // functionality for popup to show on mouseover
});


network.on("blurNode", function(){
  // functionality for popup to hide on mouseout
});

为了添加节点,最好使用

nodes.add()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的节点悬停弹出窗口在 vis.js 网络中不起作用? 的相关文章

随机推荐

  • 正则表达式匹配双引号外的左单引号

    Note 左双引号 ldquo 右双引号 rdquo 左单引号 lsquo 我当前的正则表达式是这样的
  • Angular 2:将视图/DOM 注入组件构造函数

    我不知道如何为组件提供对其视图的引用 以执行诸如在显示表单时关注输入元素之类的操作 我似乎无法注入Element or ng core ViewRef or ng core View进入构造函数 我怎样才能访问该视图 在 Angular 1
  • 将多个相同值字段分组到一个单元格中

    首先 记录按表组件显示在表中 而不是在报表中显示 结果如下 YEARS MONTHS SUMMONTH SUMQUARTER 2009 Jan 130984 432041 Feb 146503 Mar 154554 Apr 147917 4
  • 由于 google auth 已弃用,如何删除已打开的内容?

    根据最新通知 google plus oauth 已折旧 根据我的理解 只有当我在代码中使用 plus me 时 我才应该担心 My code google oauth remote app google consumer key app
  • Tk.winfo() 在 Windows 8 上返回错误的屏幕尺寸 / python 2.7.5

    为什么 tk winfo 返回 1280 x 800 的屏幕尺寸 我想以 1920 x 1200 的原始分辨率运行 我在控制面板中设置的 我可以以某种方式改变它吗 谢谢 Python 2 7 5 与 Windows 8 一起运行 使用控制面
  • 如果 StringSet 不存在,则追加或创建

    所以这应该很简单 我想将字符串附加到 DynamoDB 中的 StringSet 如果存在 或者创建 StringSet 属性 如果不存在 并设置值 如果我们可以在创建时用空数组初始化 StringSet 那就太好了 但遗憾的是我们不能 这
  • Spring 和 PostgreSQL 之间的编码错误

    我有一个 Spring Boot 版本 1 3 Web 应用程序 全部采用 UTF 8 格式 还有一个 PostgreSQL 服务器 服务器编码为 UTF 8 客户端编码为 WIN1252 问题是 当我手动在数据库中保存带有特殊字符的内容时
  • 当列数变化时动画回收器视图网格

    我正在使用一个RecyclerView with GridLayoutManager 用户可以在 2 和 4 之间切换跨度计数 这将产生一个动画 该动画将每个单元格的内置平移动画运行到其新位置 到目前为止我一直使用的代码是 Transiti
  • 将日期的 NSString 转换为 NSDate

    这可能是一个愚蠢的问题 但我似乎无法在这里或文档中找到答案 我想将 NSString 例如 9 22 2010 3 45 PM 转换为 NSDate 我知道使用 NSDateFormatter 但问题是 月份可以是一位数或两位数 同样 日期
  • Java 8 显示此错误。在封闭范围内定义的局部变量 itemList 必须是最终的或有效最终的

    我正在使用 java 8 编写代码 但我迭代了List然后找到RestaurantOrderBook使用类别类型 并把它List into a Map 它显示这个错误 局部变数itemList在封闭范围中定义的必须是最终的或有效最终的 Qu
  • 如何在 Play 2.6 上禁用 CSRF 过滤器?

    我一直在尝试将 Postman 与 Play Framework API 结合使用 但我不断遇到与 CSRF 过滤器相关的问题 我浏览了一些论坛 包括SO 寻找解决方案 并且众所周知的建议似乎正在添加 play filters disabl
  • std::optional::value_or() - 惰性参数求值

    是否可以评价std optional value or expr 以一种懒惰的方式论证 所以expr仅在没有值的情况下才计算 如果没有 什么是合适的替代品 include
  • 复制构造函数参数

    在复制构造函数中 为什么参数需要具有与其关联的默认值 如果没有与它们关联的默认值并且构造函数中提供了多个参数 会发生什么情况 例如 X const X copy from me int 10 int 有一个默认值 但是 X const X
  • 黑莓 - 运行后台应用程序

    下午好 我开始用java和黑莓编程 我正在开发一个具有三个窗口的应用程序 我将在其中显示有关设备的基本信息 这些窗口已经完成并正在运行 我需要创建一个在后台运行的进程 该进程每 10 分钟运行一次 当我让这个进程在后台运行并正在努力关闭窗口
  • 使用.NET Core和Angular 2/4的Web应用程序的基础层

    您好 我正在寻找使用 yeoman 应用程序生成器或最少量代码模板的说明来创建集成 Entity Framework Core 和 Angular 2 4 的 Web 应用程序 最好提供的答案将使用 yeoman 应用程序生成器 我也不介意
  • JSR 352 重新启动作业?

    当作业重新启动时 仅再次运行失败的分区 如何再次运行已成功完成的作业 再次提交作业和重新启动作业有区别吗 我正在 Websphere Liberty 上使用 IBM 的 JSR 352 实现 Java Batch 的设计使得当您重新启动作业
  • 如何在“我的 iPhone 应用程序”中使用 C++ STL 容器?

    我想在我的 iPhone 应用程序中使用 STL 集 它是在 XCode 中用 Objective C 编写的 如何包含设置和 或使用标准命名空间 在 C 中我会这样做 include
  • 增加按钮的可点击区域

    我想增加按钮的可点击区域 但是按钮中的图像应保持相同的大小 而且我已将图像设置为背景而不是源 我该怎么做
  • 你可以设置 RootViewController 的动画吗?

    我正在使用 SplitViewController 它不能成为导航控制器的一部分 我在 IBAction 上使用 SetRootViewController 这很好 但它不是动画的 理想情况下 我想使用与导航控制器相同的动画 从左 右滑入
  • 为什么我的节点悬停弹出窗口在 vis.js 网络中不起作用?

    我遇到一个问题 尽管在节点对象中包含 标题 属性 但当我将鼠标悬停在节点上时 没有显示包含标题内容的弹出窗口 以下是我的选择以及我如何设置网络 setUpNetwork let container document getElementBy