2010-08-16 41 views
5

Sử dụng kho của jQuery, có một cách để cho phép các mục được chọn bằng cách di chuột qua chúng. Trong các tùy chọn, lưới [mouseActiveRadius] có thể được đặt thành một số để cho biết chiều dài mong muốn của bán kính của vòng tròn lựa chọn.Thuật toán di chuột qua để phát hiện hoàn toàn dựa trên vị trí x?

Ví dụ: nếu bạn đặt thành 10 thì mọi sự kiện di chuột sẽ làm nổi bật điểm gần nhất trong vòng tròn bán kính 10 pixel.

Tuy nhiên, tôi muốn thay vào đó hãy thông báo cho flot để di chuột qua điểm gần nhất theo hướng x (thay vì khoảng thời gian gần nhất).

EG trong ví dụ này: điểm 1 rõ ràng là gần gũi hơn với x so với điểm 2, nhưng tôi vẫn muốn flot để chọn điểm 2 vì nó gần hơn theo hướng x.

  x 
1 







      2 

Có cách nào để thực hiện việc này với các plugin/chức năng được tích hợp sẵn hay tôi cần viết hành vi mặc định của chức năng mở rộng của chức năng không?

Trả lời

4

Cách duy nhất tôi tìm thấy là thay đổi nguồn. (Nó sucks ok, nhưng nó thường tốt hơn một hack cũng nhận xét hơn một workaround un-bảo trì)

Tìm mã này: (function findNearbyItem(), trên dòng 2278 trên phiên bản của tôi)

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; 

Thay đổi:

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; 

Hy vọng câu trả lời này sẽ giúp mọi người có cùng một vấn đề.

0

y = 0 sẽ không hoạt động đối với các giá trị y lớn. y = axisy.datamin khắc phục sự cố.

Các vấn đề liên quan