Flot工具提示悬停

时间:2012-04-01 12:43:39

标签: flot

我在flot中遇到了工具提示的问题。我正在传递一个时间戳数据,它将反映为一个数字,例如1113340002003.我想要做的是,当我将鼠标悬停在数据点上时,它将反映为日期:01/04/2012而不是该数字。任何帮助都会很棒!被困在这里几个小时....

这就是我要传递的内容:

var time = (new Date(dates[i]));
graph.push([time, demand[i]]);

这是我用来绘制图表的部分:

var options = {
series: {
               lines: { show: true },
               points: { show: true }
           },
           grid: { hoverable: true, clickable: true },
           yaxis: { min: 0, max: 20000 },
           xaxis: {
               mode: "time", timeformat: "%d/%m/%y"}

var plot = $.plot($("#placeholder"), 
       [ { data: graph, label: "price" } ], 
        options);

function showTooltip(x, y, contents) {
    $('<div id="tooltip">' + contents + '</div>').css( {
        position: 'absolute',
        display: 'none',
        top: y + 5,
        left: x + 5,
        border: '1px solid #fdd',
        padding: '2px',
        'background-color': '#fee',
        opacity: 0.80
    }).appendTo("body").fadeIn(200);
}


var previousPoint = null;
$("#placeholder").bind("plothover", function (event, pos, item) {
    $("#x").text(pos.x.toFixed(2));
    $("#y").text(pos.y.toFixed(2));

    if($("#enableTooltip:checked").length > 0) {
        if (item) {
            if (previousPoint != item.dataIndex) {
                previousPoint = item.dataIndex;

                $("#tooltip").remove();

                var x = item.datapoint[0].toFixed(2),
                    y = item.datapoint[1].toFixed(2);

                   var td = x.split("/");

1 个答案:

答案 0 :(得分:3)

只需将其转换为javascript数据对象,然后自己构建字符串。

var d = new Date(item.datapoint[0]);
var someDay = d.getDate();
var someMonth = d.getMonth() + 1; //months are zero based
var someYear = d.getFullYear();
var stringDate = someMonth + "/" + someDay + "/" + someYear;

var x = stringDate;
var y = item.datapoint[1].toFixed(2);