Я создал jsfiddle demo , чтобы показать, что это возможно, но я не смог найти способ сделать это так, как мне бы хотелось.
ПослеСоздавая набор данных, я создал массив, который имеет список URL-адресов в том же порядке, что и отображаемые результаты.Когда событие выбора вызывается нажатием на точку, выполняется функция, которая в этом случае приводит вас к правильному URL.
Данные:
var data = google.visualization.arrayToDataTable([
['Age', 'Weight'],
[ 8, 12 ],
[ 4, 5.5 ],
[ 11, 14 ],
[ 4, 5 ],
[ 3, 3.5 ],
[ 6.5, 7 ]
]);
URL:
var dataUrls = new Array();
for(var i = 0; i < data.D.length; i++) {
dataUrls[i] = 'http://www.'+i+'.com';
}
(в этом примере я создал отдельный URL, который будет http://www.n.com для каждого результата, где n - индекс)
После того, как выобъявив свою диаграмму, вы можете добавить прослушиватель событий, который будет срабатывать при нажатии на точку.
google.visualization.events.addListener(chart, 'select', function() {
try {
window.location = dataUrls[chart.getSelection()[0].row];
} catch(e) {}
});
Важным битом здесь является chart.getSelection()[0].row
, он сообщает вам, каков результат иполучает индекс, который вы можете использовать для получения правильного URL-адреса из массива.
В этом есть небольшая ошибка, если вам нужно что-то кроме открытия страницы в том же окне.По сути, дважды щелкнув одно и то же событие, вы получите TypeError
, поэтому я обернул вызов в оператор try catch.
Как я уже сказал, может быть другой способ сделать это, но этоно, надеюсь, это хорошая отправная точка.