2017-12-12 10 views
0

私はいくつかのチャートをレンダリングしているページがあります。これらは融合図です。私は各グリッドボックスがクリック可能なグリッドレイアウトを持っており、クリックするとグラフがレンダリングされるdivが表示されます。デフォルトではこれらのdivは非表示になっていて、それぞれのアンカータグがクリックされると対応するグラフが表示されます。今私が欲しいのは、グリッドボックスは、レンダリングされているチャートのサムネイル画像のサイズを変更する必要があるということです。私はSVGをコピーしようとしているが、私は隠されたdivからコンテンツをコピーすることができないようだから私は傾ける。以下は、私が主に興味を持ってコードの一部である。SVGを隠しdivの中からコピーしてサムネイルを作成する

$("#testButton").on('click',function(){ 
    var testDiv = $("#chart-container").clone(); 
    console.log($(testDiv.html())) 
    var testSvg = $(testDiv.html()).find('svg').clone(); 

testSvg.appendTo($("#testDiv")) 
}) 

あなたは上記のコードに気付いた場合のdiv $("#chart-container")が表示されている場合にのみ、それは動作します。さもなければ、私はsvg要素をコピーすることができません。私が望むのは、チャートが隠しdivにロードされるとき、対応するグリッドボックスは、サイズ変更されたsvgのサムネイルを持つ必要があるということです。

私が提供しているのは、最初のグリッドボックスには、一部のテキストが含まれている図表https://jsfiddle.net/nyb4v4og/が含まれています。

すべてのヘルプはあなたがdiv要素ではなく、DIVのHTMLコンテンツにfindを使用する必要があります

答えて

1

をいただければ幸いです。 お試しvar testSvg = $(testDiv).find('svg').clone(); とにかくsvgをクローンする場合は、グラフの内容を複製する必要はありません。

$("#testButton").on('click',function(){ 
 
    var testSvg = $("#contents").find('svg').clone(); 
 
    testSvg.appendTo($("#target")) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="hidden-source" style="display:none;"> 
 
\t <div id="contents"> 
 
\t \t <svg width="100" height="40"><text x="10" y="25">Test</text></svg> 
 
\t </div> 
 
</div> 
 

 
<div id="target"></div> 
 
<div id="testButton">Test button</div>

+0

私は以前それが働いていなかった....私はあなたの提案とフィドルを更新しましたが、SVGを含むdiv要素が表示されるまで、まだそれはコピーしないことをしようとしました。.. .. $( "#testButton")。on( 'click'、function(){ var testSvg = $( "#chart- "コンテナ")。find( 'svg')。クローン(); testSvg.appendTo($( "#testDiv")) }) https://jsfiddle.net/nyb4v4og/3/ – Apoorv

+0

グラフをどのように生成しているのか分かりませんが、リンクをクリックするまでは存在しません。隠されているのではなく、DOMに存在しないということです)。 Jqueryはそれが見つかるまで見つけることができません。限り、私はFusionのグラフが表示されるまで作成されていないことがわかります。 –

+0

最初に応答のためにありがとう....そしてはいあなたは正しい...彼らは隠れたdivsのグラフをレンダリングする機能を持っていません....私はチャートをレンダリングしている私の最初の問題の回避策を思いついた2 pxのdivとグリッドのクリックで私は希望のグラフを複製しています....今私がしなければならないのは、2 pxのdivでレンダリングされたsvgのサイズを変更して、場所... ....その任意のヘルプ??? – Apoorv

関連する問題