我试图创建动态变量,我一直在
未捕获错误:未定义容器
我仔细检查了所有内容 - 一行一行 - 仍然无法找到自己的错误。 我希望有人可以指出我错过了什么。
var data = {};
var chart = {};
for (var object in objects) {
var total = objects[object].danger + objects[object].warning + objects[object].success ;
data[object] = google.visualization.arrayToDataTable([
['Piechart' , 'Number of Skills'],
['danger' , ( objects[object].danger/total ) * 100 ],
['warning' , ( objects[object].warning/total ) * 100 ],
['success' , ( objects[object].success/total ) * 100 ],
]);
console.log( ".piechart-div-"+ object.toLowerCase() );
var $el = $('#sa-piechart-' + object);
$el.length ? $('#sa-piechart-' + object.toLowerCase() ) :
$('<div id="#sa-piechart-' + object.toLowerCase() +'"></div>')
.appendTo(".piechart-div-" + object.toLowerCase());
// Dynamic Variables
chart[object] = new google.visualization.PieChart($el[0]);
// Dynamic On Click Binding
$('.sa-report-btn-'+ object.toLowerCase() ).click(function() {
updateInfo(object);
chart[object].draw( data[object] , options );
});
}
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-2 piechart-div-a">
<div id="sa-piechart-a"></div>
</div>
答案 0 :(得分:1)
首先,没有piechart-div-*
附加sa-piechart
div。
这样的事情应该这样做
// create a piechart object
var $el = $('#sa-piechart-' + object);
// create a piechart container
var pieChartContainer = $('<div></div>').addClass('piechart-div-' + object.toLowerCase());
// append piechart container to body (or any other container)
$('body').append(pieChartContainer);
$el = $el.length ? $('#sa-piechart-' + object.toLowerCase()) : $('<div id="#sa-piechart-' + object.toLowerCase() + '"></div>')
.appendTo(pieChartContainer);
// create a button and append to chart container
var button = $('<input type="button" value="report" />');
pieChartContainer.append(button);
// attach click handler to the created button
$(button).click(function (chart, data, obj) {
updateInfo(obj);
chart.draw(data);
}.bind(null, chart[object], data[object], object)); // <--- passing variables here