1
私はflotChartsを使用していますが、2つ以上の棒グラフを使用しているときは、棒グラフをホバリングすると最後にロードされたグラフの値のみが表示され、最初の値と同じ値。ここでは、コードです:jQuery flotcharts - 最初のグラフのみの値をツールチップに表示
HTML:
<div class="flot-chart">
<div class="flot-chart-content" id="[email protected]"></div>
</div>
はJavaScript:
var [email protected] = [
@foreach (var serie in Model.Series)
{
<text>
{
label: '@serie.Name',
@DisplayGraphType(serie)
data: [
@foreach (var point in serie)
{
<text>
[@point.Item1, @point.Item2],
</text>
}
]
},
</text>
}
];
var xlabels = [
@foreach (var lbl in Model.Labels)
{
<text>[@lbl.Item1, "@lbl.Item2"],</text>
}
];
function getLabel(xval) {
var lbl = xval;
xlabels.forEach(function(e){
console.log(parseInt(e[0]) == parseInt(xval));
if (parseInt(e[0]) == parseInt(xval)) {
lbl = e[1];
}
});
return lbl;
}
$(function() {
$.plot($("#[email protected]"), [email protected], {
series: {
lines: {
lineWidth: 2,
fill: @((Model.Series.Count() == 1).ToString().ToLower()),
},
bars: {
barWidth: 0.6,
align: "center"
},
points: {
fill: @((Model.Series.Count() == 1).ToString().ToLower()),
}
},
xaxis: {
ticks: xlabels,
tickDecimals: 0
},
colors: @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.Series.Select(o => o.Color).ToArray())),
grid: {
color: "#999999",
hoverable: true,
clickable: true,
borderWidth: 0,
},
legend: {
show: true
},
tooltip: true,
tooltipOpts: {
content: function(label, xval, yval) {
var content = getLabel(xval) + ": " + yval;
return content;
},
}
});
});
@ControlID値はGUIDですし、それが自動的にランダムに生成され、それがチャートの間で常に異なるのです。 iは、グラフの第二バーに置いたときに以下の例で
は、それが他のグラフの第2のバー値(のみxaxesが間違っている)を示している:
jsコードは、グラフに1回ずつ含まれていますか?次に 'xlabels'を上書きし、最後のグラフの値だけを残します。ここでもあなたのIDを使ってみてください。 – Raidri
はい、私はこのグラフをそれぞれのグラフに置きますが、あなたが正しいと思われる場合は、値を上書きします。 IDはどこに置くの?私は各グラフを識別するControlIDを持っています –
'SeriesID @ ControlID'のように、名前を' xlabels_ @ ControlID'に変更してください。 'getLabel()'関数も変更する必要があります。 – Raidri