Как добавить отдельную ссылку на веб-страницу к каждому набору точек данных на точечной диаграмме Google? - PullRequest
1 голос
/ 23 февраля 2012

Можно ли добавить гиперссылки на график рассеяния, поэтому, когда я нажимаю на точку данных, она открывает ссылку?

спасибо

1 Ответ

0 голосов
/ 28 мая 2012

Я создал 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.

Как я уже сказал, может быть другой способ сделать это, но этоно, надеюсь, это хорошая отправная точка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...