我将我的flot图切换为使用bootstrap工具提示。我遇到过 bug ,如果两个项目靠得很近,则工具提示不会跟随。
正如您在上图中所看到的那样,当引导工具提示仍然卡在上面的数据点上时,我将悬停在较低的数据点上。
我使用以下代码。我想这个问题位于if(item)
,在徘徊时保持不变。我正在考虑使用全局变量,但这似乎是一个混乱的解决方案。有什么想法吗?
placeholder.bind('plothover', function (event, pos, item) {
if (item) {
var x = item.datapoint[0],
y = item.datapoint[1],
label = item.series.label;
box.css({
top: item.pageY - 2,
left: item.pageX + 1
});
if ($('.tooltip').length === 0) {
box.tooltip({
placement: 'top',
title: label + ': ' + y
}).tooltip('show');
}
} else {
box.tooltip('destroy');
}
});
答案 0 :(得分:1)
存储工具提示所显示项目的全局变量是flot中的默认解决方案,如下所示:
prevItem = null;
placeholder.bind('plothover', function (event, pos, item) {
if (item) {
if (prevItem != item.dataIndex + item.seriesIndex / 100) {
prevItem = item.dataIndex + item.seriesIndex / 100;
// show / update tooltip
}
} else {
prevItem = null;
box.tooltip('destroy');
}
});
我试图让你的小提琴起作用,而且大部分时间都有效。但是引导工具提示存在一些问题,有时不能正确更新文本。始终摧毁并重新创建工具提示解决了这个问题,但却带回了闪烁。