Нажмите легенду, чтобы переключить серию в flot

0

Я пытаюсь включить/выключить серию, нажав на легенду, я не могу заставить ее работать после JSON.parse(). Если я делаю JSON.stringify(obj[0]) меня есть данные в кавычках, и граф не заполняется. Я что-то упускаю, это должно быть легко, и я пропускаю что-то очень немое.

{"bar": {"order": 1}, "label": "xxx", "data": "[[1364792400000, 9131], [1367384400000, 6753], [1370062800000, 7256], [1372654800000, 5548], [1375333200000, 6817], [1378011600000, 6402], [1380603600000, 7470], [1383282000000, 6580], [1385877600000, 5908], [1388556000000, 5908], [1391234400000, 6645], [1393653600000, 6194]] " }

<DIV id="flotchart" style="height: 300px; width: 100%; overflow: hidden;"></DIV>
<DIV id="flotlegend"></DIV>

data = [{"bars":{"order":1},"label":"xxx","data":[[1364792400000,9131],[1367384400000,6753],[1370062800000,7256],[1372654800000,5548],[1375333200000,6817],[1378011600000,6402],[1380603600000,7470],[1383282000000,6580],[1385877600000,5908],[1388556000000,5908],[1391234400000,6645],[1393653600000,6194]]},{"bars":{"order":2},"label":"yyy","data":[[1364792400000,2],[1367384400000,2],[1370062800000,1],[1372654800000,1],[1375333200000,4],[1378011600000,2],[1380603600000,4],[1383282000000,8],[1385877600000,0],[1388556000000,12],[1391234400000,10],[1393653600000,67]]}]

function drawGraph() {
var options = {
        legend: {container: jQuery('flotLegend')},
        xaxis: {mode: "time", timeformat: "%m-%y"},
        yaxis: {min:0, minTickSize: 1},
        grid: {hoverable: true},
        series: {
                    bars: { show: true, barWidth: 24*60*60*1000*10, fill: 1, align: "center", lineWidth: 0, fill: true},
                    shadowSize: 3
                }
        };
jQuery.plot(flotchart, data, options);
}

jQuery('#flotlegend tbody tr td').on('click', function(e) {
        e.preventDefault();
        legend = jQuery(this).html();
        try {
            obj = jQuery.parseJSON(data);
            console.log(obj)
            if(obj[0].label == legend) {
                 data = JSON.stringify(obj[0]);
                 drawGraph();
            }
        } catch(e){
            console.log(e);
        }
    });

jsfiddle

Теги:
flot

1 ответ

0

Стараться сделать:

jQuery('#flotlegend').on('click', 'tbody tr td' , function(e) {
    e.preventDefault();
    // Rest of your code here
});
  • 0
    Я был в состоянии вызвать щелчок, данные, которые я получаю после разбора, не строят график

Ещё вопросы

Сообщество Overcoder
Наверх
Меню