首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vis.js中双击一个节点,有没有一种简单的方法来创建一个超链接/javascript操作?

在vis.js中双击一个节点,有没有一种简单的方法来创建一个超链接/javascript操作?
EN

Stack Overflow用户
提问于 2015-01-21 08:38:10
回答 2查看 3.5K关注 0票数 1

在vis.js、http://visjs.org/network_examples.html中定义节点如下所示:

代码语言:javascript
复制
var nodes = [
{id: 1, label: 'Node1'},
{id: 2, label: 'Node2'},
{id: 3, label: 'Node3'},
{id: 4, label: 'Node4'}
];

我想知道的是,您是否可以创建一个双击(或其他事件/单击类型)的节点操作,如下所示:

代码语言:javascript
复制
var nodes = [
{id: 1, label: 'Node1', double-click: 'Arbitrary_OnClick_Function()'},
{id: 2, label: 'Node2', double-click: 'document.getElementById("div1").innerHTML="Node 2 was clicked"'},
{id: 3, label: 'Node3', double-click: 'https://www.google.com;target="_blank"'},
{id: 4, label: 'Node4', double-click: '#SomePageSection'}
];

也许有一种方法可以与angular.js (github.com/edgaraafelix/angular-visgraph)相结合,或者通过vis.js方法on(event,callback) (http//visjs.org/docs/network.html#Methodshttp://visjs.org/docs/network.html#Events)来实现。

EN

回答 2

Stack Overflow用户

发布于 2015-01-21 13:52:54

因此,从您具有节点示例的同一文档中,您最终创建了一个网络,例如

代码语言:javascript
复制
var network = new vis.Network(container, data, options);

(数据对象包含节点和边)

然后,您可以在网络上放置一个事件侦听器,您可以从属性中知道您单击了哪个节点,如下所示

代码语言:javascript
复制
network.on( 'click', function(properties) {
    alert('clicked node ' + properties.nodes);
});
票数 5
EN

Stack Overflow用户

发布于 2017-02-15 20:09:51

我也有同样的需求。从Simon的回答开始,我最后添加了以下代码:

代码语言:javascript
复制
network.on("doubleClick", function (params) {
    params.event = "[original event]";
    window.open("/myurl/?id="params.nodes[0],'_blank');
});

params.nodes[0]是我在url中使用的节点的id。

this visjs page的源代码中可以找到更多的例子。

问题:这对任何双击的网络对象都有效。我不知道如何让它只在节点上工作...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28057718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档