我的问题可能有点混乱所以我会解释。
我用Google Charts制作了一个简单的饼图。它很棒。我需要知道的是能够链接饼图的所有部分/部分以显示jquery模式/对话框弹出窗口。
我搜索了很长时间但仍然找不到任何接近的东西。
感谢大家的阅读,希望有人可以帮助我:)。
这是我的代码显示我的图表
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Clan');
data.addColumn('number', 'Vampire');
data.addRows([
<? foreach($this->toDisplay as $oClan)
{
echo "['".$oClan->getName()."', ".count($oClan->getMembers()).']';
echo ", ";
} ?>
]);
var options = {'title':'Effectif des clans',
'width':600,
'height':600};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
<body>
<div id="chart_div"></div>
</body>
这里的代码与听众做了我想要的事情:))
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Clan');
data.addColumn('number', 'Vampire');
data.addRows([
<? foreach($this->toDisplay as $oClan)
{
echo "['".$oClan->getName()."', ".count($oClan->getMembers()).']';
echo ", ";
} ?>
]);
var options = {'title':'Effectif des clans',
'width':600,
'height':600};
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 id="chart_div"></div>
</body>
</html>
答案 0 :(得分:2)
这是一个棘手的问题,这不是一个完整的答案,而是一个如何解决这个问题的提示。
在这种情况下,有3种情况:
上帝,如果你存在,原谅我写这篇文章。 如果你不能编码或挂钩它,那就破解吧。您可以使用insepctor在渲染后研究生成的SVG的结构,并构建一个漂亮的jQuery选择器并修补svg。
$mySvgElement.find("g")
.get(indexComputedFromRetroengineering)
.whatEverMakesYourPieSliceALink()
;
第三种方法有很多缺点,包括以下(但不仅仅是):
但在某些情况下,它可能是唯一的方法。这取决于你想要多少,如果知道你已经准备好支付这个价格的缺点和隐藏成本。
答案 1 :(得分:2)