2013-03-22 55 views
6

我在sigma.js中有一个非常简单的例子,它读取带有一些额外数据的gexf文件。向Sigma.js中的节点添加onclick事件

// Instanciate sigma.js and customize rendering : 
var sigInst = sigma.init(document.getElementById('graph-container')).drawingProperties({ 
    defaultLabelColor: '#fff', 
    defaultLabelSize: 14, 
    defaultLabelBGColor: '#fff', 
    defaultLabelHoverColor: '#000', 
    labelThreshold: 6, 
    defaultEdgeType: 'straight' 
}).graphProperties({ 
    minNodeSize: 0.5, 
    maxNodeSize: 5, 
    minEdgeSize: 1, 
    maxEdgeSize: 1 
}).mouseProperties({ 
    maxRatio: 4 
}); 

// Parse a GEXF encoded file to fill the graph 
// (requires "sigma.parseGexf.js" to be included) 
sigInst.parseGexf(gexfFile); 

这其实只是从教程中获得的。现在我想为所有节点添加一个点击事件。任何人都可以告诉我一个正确的方法来做到这一点?

回答

7

第一步 - 写事件处理程序

function onClick(event) { 
    window.console.log("clicked!"); 
} 

第2步 - 查找事件名称

我一直在想了一会儿事件名称可能是什么。看起来,“onmouseover”,“onmousedown”等已被重新命名为“onmouse”部分截尾,并在末尾添加“节点”。

所以对于click事件可能是“downnodes”

第3步 - 链接的处理程序的Click事件:

您必须使用bind()函数来绑定一个事件处理程序以事件名称。

sigInst.bind('downnodes',onClick).draw(); 

活动列表@ V1.0.3

感谢马特提供的列表。

点击,右击,clickStage,doubleClickStage,rightClickStage,clickNode,clickNodes,doubleClickNode,doubleClickNodes,rightClickNode,rightClickNodes,overNode,overNodes,outNode,outNodes,downNode,downNodes,upNode,upNodes - 都应该是小写。

+1

感谢。你是如何找到事件名称的? – Gijs 2013-03-28 08:29:13

+1

对不起,延迟回复。我在github上查看了源代码。 – otonglet 2013-08-02 07:20:38

+2

所有活动列表@ v1.0.3:click,rightClick,clickStage,doubleClickStage,rightClickStage,clickNode,clickNodes,doubleClickNode,doubleClickNodes,rightClickNode,rightClickNodes,overNode,overNodes,outNode,outNodes,downNode,downNodes,upNode,upNodes – 2014-10-20 00:54:07