1

以下の関数は、アイコンをクリックした後に呼び出され、モーダルを作成します。関数の実行中に、DOMをたどり、HTMLキャンバスをつかみ、それをモーダルで表示します。私が抱えている問題は、最初に取得するHTMLを削除しているため、重複してほしいということです。誰かがこれについていくつかの光を当てることができますか?jQueryの重複したHTMLをBootStrapモーダルに変換

JS:

$('#chartModal').on('show.bs.modal', function (event) { 
    console.log('yeppp'); 
    // Button that triggered the modal 
    const button = $(event.relatedTarget) 
    // Get corresponding chart's HTML 
    const chart = button.parent().next()[0] 
    var modal = $(this) 
    // Update modal's content with the corresponding chart 
    modal.find('.modal-body').html(chart) 
}) 

よろしく、 ジェームズ。

+0

'modal.find( 'モーダルボディ')HTML (chart.clone()); 'おそらく? – Snowmonkey

+0

@Snowmonkeyはむしろ '$(chart).clone()'でなければなりませんか? 'button.parent()。next()[0]'はjQueryオブジェクトではなくノードを返します。 – dferenc

+0

@Snowmonkey throw '' chart.cloneは関数ではありません ' –

答えて

0

あなたはjQueryのを使用しているので、あなたはそうのような.clone()メソッドを使用することができます。

$('#chartModal').on('show.bs.modal', function (event) { 
    // Button that triggered the modal 
    var button = $(event.relatedTarget); 
    // Get corresponding chart's HTML 
    // "chart" is a plain node here 
    var chart = button.parent().next()[0]; 
    var modal = $(this); 
    // Update modal's content with the corresponding chart 
    modal.find('.modal-body').html($(chart).clone()); 
}) 

// OR 

$('#chartModal').on('show.bs.modal', function (event) { 
    // Button that triggered the modal 
    var button = $(event.relatedTarget); 
    // Get corresponding chart's HTML 
    // "chart" is now a jQuery object 
    var chart = button.parent().next(); 
    var modal = $(this); 
    // Update modal's content with the corresponding chart 
    modal.find('.modal-body').html(chart.clone()); 
}) 
+0

@JamesBarrett私はもう一度それをテストして、これは私に働いているようです。コンソールには何が表示されますか? – dferenc

+0

.html()と.clone()を使ってDOMに矛盾があることがわかったので、私はコメントを削除しました。私の元のコードスニペットは親div要素を取ります(私は実際に必要なので、なぜキャンバスがモーダルで表示されたのですか?):https://gyazo.com/b5b1c355f7c97b654914ada8fd27bbb7あなたのソリューションは私のシナリオでは機能しませんでした。親divはそれと一緒に撮影されませんでした:https://gyazo.com/32de63dd81b6a8d32f8d995b258c2983?token=dca96de6b206c56abdef71add0c0fdb1私の質問です:なぜ親は、.html()と.clone()しなかったのですか? –

+0

同じページにアクセスするには、関連するHTMLの概要を質問に含めてください。ただ、あなたの – dferenc

0

あなたの現在のコードスニペットは、私の意見では過度に複雑そうです。

HTML::

... 
<canvas class="one-of-my-charts"></canvas> 
... 

JS:ここ

は従うことが容易であるかもしれない別のソリューションです。

$('.one-of-my-charts').click(function(e) { 

    $('#the-chart-modal').html(e.target); 

    $('#the-chart-modal').modal('show'); 

}); 
関連する問題