【问题标题】:How To Add Content To JQuery Flot Chart Data Array ToolTip如何将内容添加到 JQuery Flot Chart 数据数组工具提示
【发布时间】:2014-12-15 14:41:16
【问题描述】:

我有一个 JQuery Flot 折线图。我以前没有使用过 JQuery Flot Charts,对 JQuery Flot Charts 的经验也很少。我环顾四周,在其他地方找不到答案。

JQuery Flot折线图的数据数组如下:

var twitter = [[1, 27], [2, 34], [3, 51]]

当用户将鼠标悬停在折线图中的每个数据点上时,会向用户显示一个工具提示。工具提示当前显示以下内容:

工具提示示例,数据点一> Twitter:| X:1 | y:27.00

我可以看到这是在 Var Options 中控制的:

var options = {
                        grid : {
                            hoverable : true
                        },
                        colors : ["#568A89", "#3276B1"],
                        tooltip : true,
                        tooltipOpts : {
                            **//content : "Value <b>$x</b> Value <span>$y</span>",**

现在,我的每个数据数组都显示不同的数据点。例如:

数据数组一:显示用户个人资料查看次数 数组二:显示用户点数 数据数组三:显示好友数

现在,当用户将鼠标悬停在每个数据点上时,用户需要能够看到每个数据点与什么相关。

例如:

当用户悬停在 > 数据数组一:[1, 27]

工具提示需要显示 > 27 个配置文件视图

当用户悬停在 > 数据数组二:[2, 34]

工具提示需要显示 > 34 个用户点

如何自定义工具提示显示的内容?

如何为每个单独的数据数组设置不同的工具提示内容?

感谢您对这个问题的帮助和支持。

【问题讨论】:

    标签: javascript jquery flot


    【解决方案1】:

    不清楚您是如何获得每个工具提示的显示的,但在本例中它是静态的。像这样的东西应该工作。在这里摆弄-Example

    var tickVals = [[1,"Profile Views"],[2,"User Points"],[3,"Number of Friends"]]
    
    var dataLines = [
    {
     label: "Twitter",
     data: [[1, 27], [2, 34], [3, 51]],
    
    }
    ];
    
    
    
    $.plot($("#placeholder"), dataLines, {
    
    grid: {
          hoverable: true,
          mouseActiveRadius: 10
    
    },
    
    
    lines: {show: true},
    
    points: {
    
        show: true,
        radius: 4
    },
    
    });
    
    
    function showTooltip(x, y, contents) {
            $('<div id="tooltip">' + contents + '</div>').css({
                position: 'absolute',
                display: 'none',
                top: y - 40,
                left: x - 10,
                border: '1px solid #fdd',
                padding: '2px',
                'background-color': '#eee',
                opacity: 0.80
            }).appendTo("body").fadeIn(200);
        }
    
    
    
        var previousPoint = null;
        $("#placeholder").on("plothover", function(event, pos, item) {
            $("#x").text(pos.x.toFixed(2));
            $("#y").text(pos.y.toFixed(2));
            if (item) {
    
                if (previousPoint != item.dataIndex) {
    
                    previousPoint = item.dataIndex;
    
                    $("#tooltip").remove();
                    var x = item.datapoint[0]-1,
                            y = item.datapoint[1];
    
                    showTooltip(item.pageX, item.pageY,
                                    tickVals[x][1] + "- " + y);
    
                }
            }
            else {
                $("#tooltip").remove();
                previousPoint = null;
            }
    
         });
    

    【讨论】:

    • 嗨布莱克。谢谢您的帮助。我正在使用一个包含 JQuery Flot Chart 的 HTML 模板。您可以在此处查看模板 > 192.241.236.31/themes/preview/smartadmin/1.5/ajaxversion/#ajax/… 。我在 > 选项卡 2 > 社交网络上的仪表板页面上使用 Flot Chart。如果您查看 > Page Source,您可以看到 Flot Chart 是如何设置的。我需要知道如何自定义 Flot Chart 上的 ToolTips。因此,每个 ToolTip 所代表的数据点都有不同的内容。非常感谢您的帮助。
    • 关于上述问题。我需要知道如何显示工具提示:数据点一 > 27 个人资料视图,数据点二 > 34 个朋友。我只想知道如何自定义每个单独的工具提示的内容。我正在为我的用户从一些 PHP 代码中为每个数据数组生成数字数据数组值,因为我正在将其开发为 Joomla 模板,并使用一些 PHP 代码来创建数据数组。您的 JS Fiddle 示例是我尝试使用 ToolTips 内容实现的目标。再次感谢您。
    • 我刚刚注意到,我发布到模板的链接,指向模板的 Ajax 版本的链接,我在页面源中看不到 Flot Chart 设置/配置。我正在使用此模板的 HTML 版本,您可以在其中查看页面源底部的 Flot Chart 设置和配置。再次感谢你!非常感谢您的帮助和支持。
    • 您的问题是什么?将您的 plothover 事件更改为类似的,这应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2018-08-29
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多