2012-04-16 20 views
13

Mam problem, którego nie mogę znaleźć. Używam Flot do wykreślania niektórych danych, bardzo łatwo. Chcę dodać efekt hover, który widzisz tutaj: Flot ExampleWydarzenie Jquery Flot "plothover" nie działa

Niestety, pod żadnym pozorem nie mogę wydać zdarzenia "plotover". To jest krótki fragment kodu:

$.plot($chartArea, eventData, eventOptions); 

$chartArea.bind("plothover", function (event, pos, item) { 
    console.log('hovering!'); 
}); 

Czy jest coś, co należy ustawić w obiekcie opcji, aby włączyć to zachowanie? Dzięki!

+0

można pokazać nam realne przykład kodu na jsfiddle może? Znacznie łatwiej jest dostrzec problemy w ten sposób. – Aidanc

+0

Masz rację, ale jak tylko to opublikowałem, zdałem sobie sprawę, że coś zapomniałem, sprawdź moją odpowiedź ... – gabaum10

Odpowiedz

38

Niczym idiota, zapomniałem włączyć opcję siatki. Sprawdź obiekt:

eventOptions = { 
    points: { 
     show: true 
    }, 
    lines: { 
     show: true 
    }, 
    grid: { hoverable: true, clickable: true }, 
    xaxis: { 
     min:earliestMessage.timestamp, 
     max:currentTime, 
     mode:"time", 
     ticks:10 
    } 
}; 

odnotuj parametr siatki. Tego właśnie brakowało. Duh!

:)

+0

Dzięki, miałem ten sam problem z wydarzeniem "plotclick", dopóki nie zdałem sobie sprawy, że mam ustawioną kratę do kliknięcia fałszywy! – Jerry

2

Nie jestem pewien, co $ chartArea jest w kodzie, ale spróbujmy coś takiego:

var chartArea = $("#placeholder"); // your chart div 

$.plot(chartArea, eventData, eventOptions); 

$(chartArea).bind("plothover", function (event, pos, item) { 
    console.log('hovering!'); 
}); 
+0

działa dla mnie, jaka jest różnica między podaniem id name a podaniem nazwy elementu. – ddarz4u