This error is only occurred in Line and Area charts, and following is
my workaround in js:
function onmouseoverHandler(e) {
var r = e.row;
if ("AreaChart" == curr || "LineChart" == curr) {
var offset = 0;
var notnull = 0;
for (i=0;i<data.getNumberOfRows();i++) {
if (data.getValue(i, e.column) == null) offset++;
else notnull++;
if (notnull == e.row+1) break;
}
r = e.row + offset;
}
//Deal with correct r and e.column...
}
On 5月17日, 下午12时08分, 秦锋 <[email protected]> wrote:
> Hi:
> It's glad to see visualization supports onmouseover event now, and
> following is my example inherited from google ajax playground, the
> important thing following is that the cell[0,2] is empty:
>
> <!--
> copyright (c) 2009 Google inc.
>
> You are free to copy and use this sample.
> License can be found
> here:http://code.google.com/apis/ajaxsearch/faq/#license
> -->
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <meta http-equiv="content-type" content="text/html; charset=utf-8"/
>
> <title>
> Google Visualization API Sample
> </title>
> <script language="javascript" type="text/javascript">
> <!--
> function myonmousemove()
> {
> value.innerHTML = "X:" + window.event.x + " Y:" + window.event.y + " "
> + "X:" + window.event.screenX + " Y:" + window.event.screenY;}
>
> //-->
> </script>
> <script type="text/javascript" src="http://www.google.com/jsapi"></
> script>
> <script type="text/javascript">
> google.load('visualization', '1', {packages:
> ['linechart','table']});
> </script>
> <script type="text/javascript">
> var visualization;
>
> var data = new google.visualization.DataTable();
> data.addColumn('string', 'Name');
> data.addColumn('number', 'Height');
> data.addColumn('number', 'Age');
> data.addRows(3);
> data.setCell(0, 0, 'Tong Ning mu');
> data.setCell(1, 0, 'Huang Ang fa');
> data.setCell(2, 0, 'Teng nu');
> data.setCell(0, 1, 174);
> data.setCell(1, 1, 523);
> data.setCell(2, 1, 86);
> // data.setCell(0, 2, 20);
> data.setCell(1, 2, 30);
> data.setCell(2, 2, 40);
>
> function drawVisualization() {
> visualization = new google.visualization.LineChart
> (document.getElementById('chart'));
> visualization.draw(data, {enableTooltip:true});
>
> // Add our selection handler.
> google.visualization.events.addListener(visualization, 'select',
> selectHandler);
> google.visualization.events.addListener(visualization,
> 'onmouseover', onmouseoverHandler);
>
> table = new google.visualization.Table(document.getElementById
> ('table'));
> table.draw(data, null);
> }
>
> // The selection handler.
> // Loop through all items in the selection and concatenate
> // a single message from all of them.
> function selectHandler() {
> var selection = visualization.getSelection();
> var message = '';
> for (var i = 0; i < selection.length; i++) {
> var item = selection[i];
> if (item.row != null && item.column != null) {
> message += '{row:' + item.row + ',column:' + item.column +
> '}';
> window.alert(data.getValue(item.row, item.column));
> } else if (item.row != null) {
> message += '{row:' + item.row + '}';
> } else if (item.column != null) {
> message += '{column:' + item.column + '}';
> }
> }
> if (message == '') {
> message = 'nothing';
> }
> //alert('You selected ' + message);
> }
> function onmouseoverHandler(e) {
> value.innerHTML = e.row + " " + e.column + " " + data.getValue(e.row,
> e.column);
> }
>
> google.setOnLoadCallback(drawVisualization);
>
> </script>
>
> </head>
> <body style="font-family: Arial;border: 0 none;"
> onmousemove=myonmousemove()>
> <div id="value"></div>
> <div id="table" ></div>
> <div id="chart" style="height:500px;width:500px;"></div>
> </body>
> </html>
>
> Actually I found onmouseover and select all return wrong row number
> when I move mouse to "Huang Ang fa"'s "Age", it shows the cell[0,2],
> but [1,2] expected.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Visualization API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-visualization-api?hl=en
-~----------~----~----~----~------~----~------~--~---