สิ่งที่เรากล่าวถึงไปแล้วนั้นมากพอสําหรับหน้าเว็บหลายหน้า เนื่องจากคุณได้วาดแผนภูมิบนหน้าเว็บ อย่างไรก็ตาม หากต้องการจับการคลิกของผู้ใช้หรือต้องการควบคุมพร็อพเพอร์ตี้หรือข้อมูลในแผนภูมิที่คุณวาดไว้แล้ว คุณต้องฟังเหตุการณ์ที่แผนภูมิทําไว้
แผนภูมิทั้งหมดมีเหตุการณ์บางประเภทเกิดขึ้น สาเหตุที่พบบ่อยที่สุดมีดังนี้:
- พร้อม - ส่งเมื่อวาดแผนภูมิในหน้าเว็บและพร้อมสําหรับการตอบกลับเมธอด ฟังเหตุการณ์นี้หากต้องการขอข้อมูลจากแผนภูมิ
- select - โยนเมื่อผู้ใช้เลือกข้อมูลในแผนภูมิ: มักจะคลิกแท่งหรือแผนภูมิวงกลม
- error - มีข้อผิดพลาดเมื่อแผนภูมิแสดงผลข้อมูลที่ส่งไม่ได้ เนื่องจากรูปแบบ DataTableไม่ถูกต้อง
- onmouseover และ onmouseout - เมื่อผู้ใช้วางเมาส์เหนือองค์ประกอบองค์ประกอบแผนภูมิขึ้นหรือลงตามลําดับ
การฟังเหตุการณ์จะเป็นเรื่องง่าย เพียงเรียกใช้ google.visualization.events.addListener() ผ่านแฮนเดิลไปยังแผนภูมิ ชื่อเหตุการณ์ที่จะตรวจจับ และชื่อของตัวแฮนเดิลเพื่อเรียกเมื่อเหตุการณ์ส่ง คุณสามารถเรียกใช้วิธีนี้ด้วยแฮนเดิลแผนภูมิใดก็ได้ แม้ว่าจะไม่ได้โทรหา draw() ก็ตาม โปรดทราบว่าคุณสามารถเรียกใช้ google.visualization.events.addOneTimeListener() หากต้องการให้ระบบเรียกผู้ฟัง 1 ครั้งก่อนที่จะนําตัวเองออก
ต่อไปนี้เป็นข้อมูลโค้ดบางส่วนที่แสดงวิธีลงทะเบียนเพื่อบันทึกเหตุการณ์ select ของแผนภูมิ
load libraries...
function drawChart() {
  prepare data...
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  // The select handler. Call the chart's getSelection() method
  function selectHandler() {
    var selectedItem = chart.getSelection()[0];
    if (selectedItem) {
      var value = data.getValue(selectedItem.row, selectedItem.column);
      alert('The user selected ' + value);
    }
  }
  // Listen for the 'select' event, and call my function selectHandler() when
  // the user selects something on the chart.
  google.visualization.events.addListener(chart, 'select', selectHandler);
  draw the chart...
}
ตัวอย่างต่อไปนี้แสดงตัวอย่างโค้ด Hello Charts ที่มี Listener เหตุการณ์ใหม่ที่เลือก ลองใช้เลย
<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      // Load the Visualization API and the piechart package.
      google.charts.load('current', {'packages':['corechart']});
      // Set a callback to run when the Google Visualization API is loaded.
      google.charts.setOnLoadCallback(drawChart);
      // Callback that creates and populates a data table,
      // instantiates the pie chart, passes in the data and
      // draws it.
      function drawChart() {
        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1], 
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);
        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};
 
        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        function selectHandler() {
          var selectedItem = chart.getSelection()[0];
          if (selectedItem) {
            var topping = data.getValue(selectedItem.row, 0);
            alert('The user selected ' + topping);
          }
        }
        google.visualization.events.addListener(chart, 'select', selectHandler);    
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart_div" style="width:400; height:300"></div>
  </body>
</html>
ข้อมูลเพิ่มเติม