2017-07-05 29 views
1

D3ガントチャートを作成します。このコードモルテと以下選択した部門にd3.ganttグラフを追加します

var gantt = d3.gantt().taskTypes(taskNames).taskStatus(taskStatus)  
gantt(tasks) 

これは自動的にチャートと呼ばれる新しいSVGを作成します。

私はgithubのでオーバーthesourceコード内のいくつかの研究(https://github.com/dk8996/Gantt-Chart/blob/master/gantt-chart-d3.jsかなり終わりで)を行なったし、

d3.gantt().taskTypes(taskNames).taskStatus(taskStatus).selector('#resultContainer') 
のようなセレクタを設定する可能性を発見し、私の既存のdiv

<div id ="resultContainer"> 
</div> 

にそれを追加したいです

しかし、それはクラッシュします。 誰かが既存のdivに追加する方法を知っていますか?

答えて

0

どうやら、これはそのライブラリの作者からの間違いです。あなたが指摘したように、ユーザーがセレクタを設定する可能性があり、

gantt.selector = function(value) { 
if (!arguments.length) 
    return selector; 
selector = value; 
return gantt; 
}; 

:彼はこれを書いたコードの終わりに

しかし、コードの先頭に、彼は...役に立たない以前の機能をレンダリング

var selector = 'body'; 

を...書きました。常に<body>に追加されます。

ソリューション:あなたが使用して、あなたの選択を渡すことができる変更に伴い

var selector; 

:だけのために...ライブラリをダウンロードして、独自のバージョンを作成し、...

var selector = 'body'; 

を変更selector()

ここではデモですが、私はライブラリの同じ著者のbl.locksを使用しています。私はライブラリをコピーし、上記の変数を変更しました。 HTMLでは、のlorem ipsumという段落の前に、クラス.fooのdivを作成しました。その後、私はdiv要素を選択:

var gantt = d3.gantt().selector(".foo").taskTypes(taskNames).etc... 

あなたはチャートをdiv要素に、ない体に付加されていること(ページを検査する)見ることができます:http://bl.ocks.org/anonymous/raw/84385e7c6ac859ad24feb3662e46e3fd/

実際に、あなたも必要ありません。ページを検査する:体に追加された場合、lorem ipsumはそのままではなく、チャートの上になります。

関連する問題