2014-04-09 34 views
1

我需要使用Icicle示例(http://bl.ocks.org/mbostock/4347473)提供「重命名」功能來重命名節點。如何在D3圖中重命名節點

我無法找到任何類似於我想要做的解決方案,並且由於瀏覽器通常不允許右鍵單擊,所以我想知道是否有人對如何允許此選項有任何建議,如何去允許某人能夠重命名特定節點的名稱。

謝謝。

+0

使每個節點選擇和在允許更改節點名稱的圖形旁顯示一個文本框? –

+0

如果你在谷歌搜索D3中的可編輯文本,你會發現一些有趣的鏈接。有一些錯誤的實現,但這[一](http://jsbin.com/adUnIwuH/8/edit)似乎提供了一個可行的路徑(單擊文本以查看它的實際操作),包括將更改推送到服務器的說明,如果需要。 – FernOfTheAndes

+0

感謝您的意見。還有很多謝謝@FernOfTheAndes,那個例子很好!將看看使用它。 – sim1

回答

1

爲了記錄和每一種要求通過user2651192,對於這一點,我們可以找到最可行的路徑是here,更具體地說,更改文本的代碼是:

... 
node.append("text") 
    .text(function(d){ return d.name; }) 
    .on('click', function(d){ 
     var result = prompt('Change the name of the node',d.name); 
     if(result) { 
      d.name = result; 
      var node1 = canvas.selectAll('.node').data(nodes); 
      node1.select('text') 
       .text(function(d){ return d.name; }); 
     } 
    )}; 
...