2013-05-14 38 views
1

我試圖在旭日形圖的邊緣捕獲點擊事件。我已經捕獲節點上的點擊事件。這是我想要的:Infovis JIT:將點擊偵聽器添加到邊緣

//..sunburst example code 
Events: { 
    enable: true, 
    enableForEdges: true, 
    type: 'Native', 
    onClick: function(node, eventInfo, e){ 
    if (!node) return; 
    if(node.nodeFrom){ 
     console.log("target is an edge"); 
    }else{ 
     console.log("target is a node"); 
    } 
    } 

但是,這隻能捕獲節點點擊。怎麼了? 預先感謝您。

回答

4

問題是'包含'方法,邊緣類型'超線'(sunburst使用)尚未在infovis庫中實現。

包含的方法被庫用來知道參數中指定的某個位置是否在邊界內。無法使用包含方法獲取事件。 因此,您可以在jit.js中實現自己的包含hyperline類型的contains方法,也可以在init方法中將邊緣類型從'hyperline'更改爲'line'。

Edge: { 
    overridable: true, 
    type: 'line', //'hyperline' 
    lineWidth: 2, 
    color: '#777' 
} 

您將能夠捕獲邊緣類型「線」的事件,因爲包含方法是爲「線」類型定義的。

+0

它的工作原理!非常感謝你。我會嘗試編寫contains方法,雖然看起來很困難。 – 2013-06-10 14:42:52

+0

不客氣。我會感謝你,如果你分享包含方法,寫完之後。 – 2013-06-13 09:05:59

相關問題