您可以使用 HTML 格式化您的值,并在您的绘图选项中传递 'allowHtml: true'。然后,当用户单击单元格值时,您的 HTML 可以引发事件/执行您想要的 js。
例如,单击以下项目会引发警报:
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Salary');
data.addColumn('boolean', 'Full Time Employee');
data.addRows([
['Ted', {v: 10000, f: '<span onclick="alert(0)">$10,000</span>'}, true],
['Jim', {v:8000, f: '<span onclick="alert(1)">$8,000</span>'}, false],
['Alice', {v: 12500, f: '<span onclick="alert(2)">$12,500</span>'}, true],
['Bob', {v: 7000, f: '<span onclick="alert(3)">$7,000</span>'}, true]
]);
var table = new google.visualization.Table(document.getElementById('table_div'));
google.visualization.events.addListener(table, 'select', function () {
var s = table.getSelection();
document.getElementById('row').innerHTML = s[0].row;
document.getElementById('col').innerHTML = s[0].column;
console.log(s);
});
table.draw(data, {showRowNumber: true, allowHtml: true});
}
google.load('visualization', '1', {packages:['table'], callback: drawTable});
看:
http://jsfiddle.net/fZzch/2/
更简洁的方法是使用自定义格式化程序:
如何为 Google DataTables 编写自定义格式化程序(用于可视化 api)