如何使用引导工具提示检测flot中的相邻项目

时间:2015-07-09 21:51:16

标签: jquery twitter-bootstrap flot

我将我的flot图切换为使用bootstrap工具提示。我遇到过 bug ,如果两个项目靠得很近,则工具提示不会跟随。

error in flot

正如您在上图中所看到的那样,当引导工具提示仍然卡在上面的数据点上时,我将悬停在较低的数据点上。

我使用以下代码。我想这个问题位于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');
        }
    });

jsfiddle

1 个答案:

答案 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');
    }
});

我试图让你的小提琴起作用,而且大部分时间都有效。但是引导工具提示存在一些问题,有时不能正确更新文本。始终摧毁并重新创建工具提示解决了这个问题,但却带回了闪烁。