谷歌可视化图表内部独立的div的多个实例(Multiple Instances of Google

2019-06-25 09:03发布

我试图表现出一些谷歌仪图表在同一个屏幕上不同的申报单。 我还需要处理对这些div(因此图表)click事件。 我想这样做动态,但我有一些问题。 但无论如何,即使当我试图做到这一点静态(它的工作),我仍然无法得到图表区域点击。 发生了什么事是整个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");
    });
}

任何解释/建议吗?

Answer 1:

正确的方式来增加听者一轨距间以google.visualization.events.addListener方法,如图这个例子 。

您也可以尝试您的代码谷歌游乐场 。



文章来源: Multiple Instances of Google Visualizations Chart Inside Separate Divs