私は自分の問題を解決しましたが、このサイトに慣れていないため、自分で答えることはできません:
以下を使用する必要があることがわかりました。
chart = new google.visualization.PieChart(document.getElementById('pie_today_div'));
私は要素にアクセスするためにJQueryを使用していました $('#pie_today_div')
. 現在のところ、証拠は、PieChart コンストラクターが標準の JS コードを持っている必要があるという事実を示しています。document.getElementById('pie_today_div')
他の何かが起こっているのかもしれませんが、コンテナ要素へのアクセス方法を変更すると、コードが修正されます
私のソリューションを参照するための元の問題
Google PieChart オブジェクトをインスタンス化しようとすると、「コンテナが定義されていません」というエラーが表示されます。
http://validator.w3.org/で自分のページを検証したところ、検証済みであることを示すきれいな緑色のバナーが表示されました。
ページの読み込み時に js エラーが発生しません。私の Ajax 呼び出しは、DB から必要なデータを完全に往復しています。
ここに私のHTMLがあります
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link href="/css/note.css?10022012" rel="stylesheet" type="text/css" media="screen">
<script type="text/javascript" language="javascript" src="/call/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('visualization', '1.0', {'packages':['corechart']});</script>
<script type="text/javascript" language="javascript" src="/call/js/init.js?10042012-2"></script>
<title>Call Stats</title>
</head>
<body>
<a href="#" id="pie_today_link">Today Stats</a>
<div id="pie_today_div"></div>
</body>
</html>
ここにjsがあります:
function drawPieChartToday() {
$.post('/call/ajax.php5',{
action:'pieToday'
}, function(ticketData) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Count');
data.addColumn('number', 'Topic');
for (var key in ticketData){
data.addRow([key, ticketData[key]]);
}
options = {
title: 'Issue Topics'
};
alert($('#pie_today_div').attr('id'));
chart = new google.visualization.PieChart($('#pie_today_div'));
chart.draw(data, options);
},'json');
}
要素が見つかったことを確認するためのデバッグ コードを
alert($('#pie_today_div').attr('id'));
次に示します。