2010-08-16 14 views
5

Usando il flot di jQuery, c'è un modo per consentire la selezione degli oggetti passandoci sopra con il mouse. Nelle opzioni, la griglia [mouseActiveRadius] può essere impostata su un numero per indicare la lunghezza desiderata del raggio del cerchio di selezione.Algoritmo mouse mouseover per rilevare puramente in base alla posizione x?

Ad esempio, se si imposta su 10, qualsiasi evento di passaggio del mouse evidenzierà il punto più vicino in un cerchio con raggio di 10 pixel.

Tuttavia, desidero comunicare a flot di posizionare il punto più vicino nella direzione x (anziché il punto più vicino).

EG in questo esempio: il punto 1 è ovviamente molto più vicino a x di punto 2, ma ho ancora voglia Flot per selezionare il punto 2 in quanto è più vicino nella direzione x.

  x 
1 







      2 

C'è un modo per fare questo con plugins/costruito in funzionalità, o ho bisogno di scrivere una funzione che si estende comportamento predefinito di flot?

risposta

4

L'unico modo che ho trovato è quello di cambiare la fonte. (Fa schifo ok, ma è spesso meglio un hack ben commentato che una soluzione alternativa non-mantenibile)

Trova questo codice: (function findNearbyItem(), on line 2278 sul mio revisione)

if (s.lines.show || s.points.show) { 
        for (j = 0; j < points.length; j += ps) { 
         var x = points[j], points[j + 1]; 
         if (x == null) 
          continue; 

Passa a:

if (s.lines.show || s.points.show) { 
        for (j = 0; j < points.length; j += ps) { 
         var x = points[j], y =0; // points[j + 1]; 
         if (x == null) 
          continue; 

Spero che questa risposta possa aiutare chiunque abbia lo stesso problema.

0

y = 0 non funziona con valori y elevati. y = axisy.datamin risolve il problema.

Problemi correlati