[英]Add onclick event to nodes in Sigma.js
我在sigma.js中有一個非常簡單的例子,它讀取帶有一些附加數據的gexf文件。
// 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);
這實際上只是從教程中獲取的。 現在,我想向所有節點添加一個on-click事件。 誰能告訴我一個正確的方法來做到這一點?
根據官方文件:
s = new sigma({...});
// Bind the events:
s.bind('overNode outNode clickNode doubleClickNode rightClickNode', function(e) {
console.log(e.type, e.data.node.label, e.data.captor);
});
https://github.com/jacomyal/sigma.js/blob/master/examples/events.html
(接受的答案對我不起作用。)
第1步 - 編寫事件處理程序
function onClick(event) {
window.console.log("clicked!");
}
第2步 - 查找事件名稱
我一直想知道活動名稱可能是什么。 看起來“onmouseover”,“onmousedown”等已被重命名,其中“onmouse”部分被截斷,“nodes”被追加到末尾。
所以對於點擊事件,它將是'downnodes'
第3步 - 將處理程序鏈接到click事件:
您必須使用bind()函數將事件處理程序綁定到事件名稱。
sigInst.bind('downnodes',onClick).draw();
事件列表@ v1.0.3
感謝Matt提供的清單。
click,rightClick,clickStage,doubleClickStage,rightClickStage,clickNode,clickNodes,doubleClickNode,doubleClickNodes,rightClickNode,rightClickNodes,overNode,overNodes,outNode,outNodes,downNode,downNodes,upNode,upNodes - all應為小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.