Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌可视化点击事件_Javascript_Jquery_Google Visualization - Fatal编程技术网

Javascript 谷歌可视化点击事件

Javascript 谷歌可视化点击事件,javascript,jquery,google-visualization,Javascript,Jquery,Google Visualization,我正在使用google Visualization绘制饼图。我面临的问题是,我无法在饼图上捕获单击事件。我就是这样做的 function drawchartfromRe() { dashboard = new google.visualization.Dashboard( document.getElementById('dashboard_div')); //alert("RefuelLength"+totrefuelList.length);

我正在使用google Visualization绘制饼图。我面临的问题是,我无法在饼图上捕获单击事件。我就是这样做的

function drawchartfromRe()
{
    dashboard = new google.visualization.Dashboard(
            document.getElementById('dashboard_div'));
    //alert("RefuelLength"+totrefuelList.length);
    //alert("Vehicleid:"+totrefuelList[0].vehicleId);
   //google.load("visualization", "1", {packages:["corechart"]});
    data = new google.visualization.DataTable();
    data.addColumn('string', 'Task');
    data.addColumn('number', 'Quantity');
    data.addRows(totrefuelList.length);
    for (var i=0;i<totrefuelList.length;i++)
    {
       data.setValue(i, 0, totrefuelList[i].vehicleName);
       data.setValue(i, 1, totrefuelList[i].totalRefuelQty);
    }

    // var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
     chart = new google.visualization.ChartWrapper({
      'chartType': 'PieChart',
      'containerId': 'chart_div',
      'options': {
          title: 'Refuel Trend',
          height:'500',
          width:'400',
          backgroundColor: { fill:'transparent' },
        'legend': 'right'
      }
    });

  /* google.visualization.events.addListener(chart, 'select', function(e) {
       // var selection = chart.getSelection();
      var vehid= data.getValue(visualization.getSelection()[0].row, 0);
        getRefueldailywise(vehid);
    });*/
   // chart.draw(data, options);
   drawDashboard(dashboard,data,chart);
   google.visualization.events.addListener(chart, 'select', function() {
       // grab a few details before redirecting

      alert(data.getValue(chart.getSelection()[0].row, 0));
       //location.href = 'http://www.google.com?row=' + row + '&col=' + col + '&year=' + year;
     });
}
函数drawchartfromRe()
{
dashboard=新建google.visualization.dashboard(
document.getElementById('dashboard_div');
//警报(“加油长度”+加油长度);
//警报(“Vehicleid:+totrefuelList[0]。Vehicleid”);
//load(“可视化”、“1”、{packages:[“corechart”]});
data=new google.visualization.DataTable();
data.addColumn('string','Task');
data.addColumn('number','Quantity');
data.addRows(totreuellist.length);

对于(var i=0;i图表包装器不是图表对象,没有
单击事件。实际上,只有
选择

如果你说:

  • 为包装器创建一个
    ready
    事件
  • 就绪
    事件触发包装器中图表的
    选择
    事件
  • 以下是他们给出的示例:

    var wrapper;
    function drawVisualization() {
    
      // Draw a column chart
      wrapper = new google.visualization.ChartWrapper({
        chartType: 'ColumnChart',
        dataTable: [['Germany', 'USA', 'Brazil', 'Canada', 'France', 'RU'],
                    [700, 300, 400, 500, 600, 800]],
        options: {'title': 'Countries'},
        containerId: 'visualization'
      });
    
      // Never called.
      google.visualization.events.addListener(wrapper, 'onmouseover', uselessHandler);
    
      // Must wait for the ready event in order to
      // request the chart and subscribe to 'onmouseover'.
      google.visualization.events.addListener(wrapper, 'ready', onReady);
    
      wrapper.draw();
    
      // Never called
      function uselessHandler() {
        alert("I am never called!");
      }
    
      function onReady() {
        google.visualization.events.addListener(wrapper.getChart(), 'onmouseover', usefulHandler);
      }
    
      // Called
      function usefulHandler() {
        alert("Mouseover event!");
      }
    }
    
    因此,在您的情况下,您需要更改此部分:

       google.visualization.events.addListener(chart, 'ready', function() {
           // grab a few details before redirecting
    
          alert(data.getValue(chart.getSelection()[0].row, 0));
           //location.href = 'http://www.google.com?row=' + row + '&col=' + col + '&year=' + year;
         });
    
    对这样的事情:

       google.visualization.events.addListener(chart, 'ready', function() {
           // grab a few details before redirecting
          google.visualization.events.addListener(chart.getChart(), 'select', function() {
              chartObject = chart.getChart();
              alert(data.getValue(chartObject.getSelection()[0].row, 0));
          });
    
           //location.href = 'http://www.google.com?row=' + row + '&col=' + col + '&year=' + year;
         });
    

    在您的示例中,还有一个名为“chart”的变量,即google.visualization.events.addListener(图表,'select',function()…此处您声明了图表变量..实际上在您的示例中只有一个变量..“wrapper”…请您解释一下对不起,我在底部的示例中犯了一系列错误,所以我对其进行了更新。重点是包装器不是图表,它是一个包装器。
    wrapperObject.getchart()
    将返回包装器中的图表对象。您需要在
    chart.getchart()
    上设置侦听器,而不是在图表本身上设置侦听器。(您可能还希望将对象的名称从“chart”更改为“wrapper”,以使变量名称也包含该区别)当我尝试你的例子时,jmac先生,我得到了一个错误,
    数据没有定义
    。我认为
    数据
    是google可视化变量。@Charles,介意用你的代码问一个单独的问题吗?如果数据没有定义,可能有多种原因,但可能与事件处理程序完全无关。的确,jmac..我设法跟踪了问题并不完全与事件有关,而是与我的变量命名有关