我有一个使用JQuery Flot制作的条形图。我希望当我将鼠标移到某个栏上时,向我显示工具提示。
看看我在条形图选项中做的一些定义。
grid: {
hoverable: true,
borderWidth: 0,
color: '#838383',
clickable: true
}
当我加载所有数据并绘制图表时,我将plothover
事件绑定为下面的
$(dataParameters.containerSuccess).bind("plothover", self.funcaoPassarMouse);
我的plothover
功能
self.funcaoPassarMouse = function (event, pos, item) {
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(2),
y = self.CommaFormatted(item.datapoint[1].toFixed(2));
var mes = self.ObtemMes(item);
self.exibirTooltip(item.pageX, item.pageY, "R$ " + y + " em " + mes);
}
} else {
$("#tooltip").remove();
previousPoint = null;
}
}
我有很多使用JQuery Flot的图表,并且在所有这些图表中,使用此函数的plothover事件非常有效,除了在Bars图表中。
在条形图中,我看到item
参数带有null
值,我不知道为什么。
任何人都可以帮助我吗?
答案 0 :(得分:0)
问题似乎在于time
轴如何与条形图相互作用。最简单的解决方案可能是将时间转换为字符串并使轴成为category
。例如:
var data = [
[new Date(1388534400000).toDateString(), 10],
[new Date(1391212800000).toDateString(), 8],
[new Date(1393632000000).toDateString(), 4],
[new Date(1396310400000).toDateString(), 13],
[new Date(1398902400000).toDateString(), 17],
[new Date(1401580800000).toDateString(), 9]
];
然后:
series: {
bars: {
show: true,
align: "center",
barWidth: 0.05 // set this to whatever makes them skinny enough for you
}
},
xaxis: {
mode: "categories",
//... etc
http://jsfiddle.net/7snkmshf/4/
注意:处理时区是留给读者的。