モーダル ポップアップに Google チャートを表示しようとしています。通常のページでは問題なく動作しますが、モーダルには表示されません。
これは私が使用しているコードです。何が問題なのかわかりません。
これは、URL /polls/ に存在する HTML および JS コードです。
<!--Div that will hold the pie chart-->
<h3 style="text-align:center;">Test</h3>
<hr>
<div id="chart_div" style="height: 500px;">
</div>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Options', 'Votes'],
['1', 11],
['2', 2],
['3', 2],
['4', 2],
['5', 7],
['6', 21],
]);
// Set chart options
var options = {
'backgroundColor': 'transparent',
'is3D': 'True',
'legend':'bottom',
'width':'100%',
'height':'100%',
chartArea:{left:0,top:0,width:"100%",height:"80%"}
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
これは、ページ /home/ にある html ボタンです。
<a class="open-newmodal" href="/poll/">show poll</a>
つまり、モーダルと jquery の .load() 関数を使用して、作成したモーダルの /poll/ ページにあるチャートを /home/ ページにロードできるはずです。
これは私が使用しているモーダルです
モーダルCSS
.newmodal-container {
display: none;
overflow-y: scroll;
position: fixed;
top: 0; right: 0;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.3);
}
.newmodal {
min-height: 100%;
height: auto;
width: 60%;
margin: 0px auto;
background-color: white;
padding: 20px;
border:1px solid #D3D3D3;
box-shadow: 0px 0px 5px #D3D3D3;
}
.dp-none {
display: none !important;
}
.dp-block {
display: block !important;
}
モーダル JS
// New Modal
var body = $('body'),
main = $('.main'),
open_modal = $('.open-newmodal'),
close_modal = $('.close-newmodal'),
modal_container = $('.newmodal-container');
open_modal.live('click', function(event){
event.preventDefault();
body.addClass('body-locked');
modal_container.addClass('dp-block');
var href = $(this).attr('href');
modal = $('.data-load');
modal.load(href);
modal.attr("title",href);
});
close_modal.live('click', function(event){
event.preventDefault();
body.removeClass('body-locked');
modal_container.removeClass('dp-block');
modal.empty();
});
$(document).keyup(function(e) {
if (e.keyCode == 27){
event.preventDefault();
body.removeClass('body-locked');
modal_container.removeClass('dp-block');
modal.empty();
}
});