有没有一种简单的方法可以在节点上双击 vis.js 创建超链接/javascript-action
Is there a simple way to create a hyperlink/javascript-action on a node double-click in vis.js?
在 vis.js 中定义节点,http://visjs.org/network_examples.html ,如下所示:
var nodes = [
{id: 1, label: 'Node1'},
{id: 2, label: 'Node2'},
{id: 3, label: 'Node3'},
{id: 4, label: 'Node4'}
];
我想找出的是,您能否创建一个节点双击(或其他事件/单击类型)操作,如下所示:
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'}
];
也许有一种方法可以与角度.js(github.com/edgaraafelix/angular-visgraph)或非简单地通过.js方法on(event,callback)
(http//visjs.org/docs/network.html#Methods
和 http://visjs.org/docs/network.html#Events)相结合。
因此,从您拥有节点示例的同一文档中,您最终创建了一个网络,例如
var network = new vis.Network(container, data, options);
(数据对象包含节点和边)
然后,您可以在网络上放置一个事件侦听器,并且您知道从这样的属性中单击了哪个节点
network.on( 'click', function(properties) {
alert('clicked node ' + properties.nodes);
});
我有完全相同的需求。从西蒙的回答开始,我最终添加了以下代码:
network.on("doubleClick", function (params) {
params.event = "[original event]";
window.open("/myurl/?id="params.nodes[0],'_blank');
});
params.nodes[0]
是我在 url 中使用的节点的 ID。
此 visjs 页面的源代码中提供了更多示例(根据 PLG 的评论更新了链接)。
问题:我这适用于您双击的任何网络对象。我不知道如何让它只在节点上工作......
相关文章:
- 使用类从一个标记中双击事件
- onclick函数需要双击,因为类分配延迟
- 了解双击代码标记
- jquery Onclick函数带有导致双击的回调排序函数
- 防止双击执行两次jQuery post请求
- JavaScript双击事件
- 选择“字符串”并使用SeleniumJava双击
- jQuery UI自动完成需要在iOS上双击
- 使用jquery在html中添加双击操作
- 双击泛光灯单击
- 如何在Firefox中禁用视频的单击和双击控件
- 双击可更改树标签
- svg.js/svg平移缩放-双击交互
- 在WordSmith jquery中,双击后什么决定了链接图标的位置
- 宣传单:双击时不要触发点击事件函数
- d3 中是否有点击和双击事件.js力定向图
- 当单选按钮的标签可单击时双击
- Draw2d.js:通过双击将可编辑标签添加到现有连接
- 模拟双击拖动结束 - jquery UI
- 有没有一种简单的方法可以在节点上双击 vis.js 创建超链接/javascript-action