gpt4 book ai didi

javascript - 单独的 Div 中的多个 Google 可视化图表实例

转载 作者:行者123 更新时间:2023-11-30 06:41:34 24 4
gpt4 key购买 nike

我正在尝试显示多个 Google Gauge charts在同一屏幕上的不同 div 中。我还需要处理这些 div 上的点击事件(因此是图表)。我试图动态地做到这一点,但我遇到了一些问题。但无论如何,即使我尝试静态执行此操作(有效),我仍然无法让图表区域可点击。发生的情况是整个 div 都是可点击的,除了图表区域。

无论如何,这是我的(凌乱的 - 测试)代码:

<div id="gaugePlaceHolder" class="gaugeWrapper"></div>
<div id="gaugePlaceHolder2" class="gaugeWrapper"></div>

document.getElementsByClassName = function (cl) {
var retnode = [];
var myclass = new RegExp('\\b' + cl + '\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};


google.load('visualization', '1', {packages:['gauge']});
google.setOnLoadCallback(function () {
drawChart1();
drawChart2();
});
function drawChart1() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Memory', 80]
]);

var options = {
width: 400, height: 120,
redFrom: 90, redTo: 100,
yellowFrom:75, yellowTo: 90,
minorTicks: 5
};

var chart = new google.visualization.Gauge(document.getElementById('gaugePlaceHolder'));
chart.draw(data, options);
}

function drawChart2() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Another', 30]
]);

var options = {
width: 400, height: 120,
redFrom: 90, redTo: 100,
yellowFrom: 75, yellowTo: 90,
minorTicks: 5
};

var chart = new google.visualization.Gauge(document.getElementById('gaugePlaceHolder2'));
chart.draw(data, options);
}

window.onload = function () {
var elements = $('.gaugeWrapper');
console.log(elements);
elements.click(function () {
alert("clicked");
});
}

有什么解释/建议吗?

最佳答案

向 Gauge 添加监听器的正确方法是使用 google.visualization.events.addListener 方法,如 this example 所示。 .

您也可以在 Google Playground 上尝试您的代码.

关于javascript - 单独的 Div 中的多个 Google 可视化图表实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com