определение точки зависания с Flot?

Надеюсь, эти вопросы не будут слишком запутанными или длинными, я работаю с примерами Flot, особенно этот.

Я использую флот, чтобы отобразить некоторые данные, которые я собирал, в точечную диаграмму. Я использую следующую функцию для этого...

function genScatter(){
    var no = getSelectedRepeat();
    $.get("getPages.json",{rid: no},function(data){
        var d1 = [];
        $.each(data,function(i,obj){
            d1.push([obj.queries,obj.count,{url: obj.url}]);
        })
        $.plot($("#scatter"), [ { label: "Pages",
            data: d1, 
            lines:{show: false},
            points:{show: true}}],{
            xaxis:{min: 1},
            grid:{ hoverable: true}
        });
  });

}

Мой код генерирует точечную диаграмму с различными точками. Когда я навожу курсор на точку, активируется следующий слушатель...

$("#scatter").bind("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].toFixed(2),
                y = item.datapoint[1].toFixed(2);

            /*this would be the line where I extract
             the url and forward it to showToolTip.*/
            showTooltip(item.pageX, item.pageY,
                        item.series.label  + ": " + y);
        }
    }
    else {
        $("#tooltip").remove();
        previousPoint = null;            
    }

});

где showTooltip определяется, это...

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);
}

По сути, при наведении курсора на точку я хотел бы отобразить значение для url, добавленное с точкой к d1, но я не смог этого сделать, потому что объект item не возвращает url внутри item.datapoint только значение x, y баллы возвращаются. url включен внутри item, но под item.data в массиве со всеми остальными точками на графике.

У меня вопрос: либо однозначно определить точку из массива, указанного в item.data, либо заставить flot включить url внутри item.datapoint, есть ли способ получить url в соответствующую точку?


person Aidanc    schedule 05.02.2012    source источник


Ответы (1)


Если вы определяете свою структуру данных таким образом, вы сможете получить URL-адрес в обратном вызове plothover с помощью (пример здесь):

item.series.data[item.dataIndex][2].url
person Mark    schedule 05.02.2012