2012-06-25 28 views
16

Khi bạn di chuột qua một điểm trong biểu đồ Highcharts, bạn sẽ có một vòng tròn mở rộng đẹp dưới con trỏ (hoặc biểu tượng khác). Những gì tôi muốn làm bằng tay kích hoạt hiệu ứng di chuột đó.Highcharts - kích hoạt sự kiện di chuột theo cách thủ công trên một điểm

Tôi biết rằng tôi có thể kích hoạt sự kiện mouseOver theo cách thủ công trên điểm, nhưng điều đó không cho tôi biểu tượng mở rộng trên biểu đồ mà tôi sẽ thực hiện.

+2

Khi nào bạn muốn kích hoạt? Bạn có thể cho tôi một ví dụ ? –

+0

Trong trường hợp cụ thể của tôi, tôi muốn kích hoạt hiệu ứng khi di chuột qua một điểm khác. Tôi biết cờ "được chia sẻ" mà bạn có thể đặt trên chú giải công cụ, nhưng đó không phải là điều tôi đang tìm kiếm. Tôi muốn kích hoạt hiệu ứng di chuột trên một điểm khác trong cùng một chuỗi, nhưng tại một x, y khác. –

Trả lời

26

Tôi tìm thấy câu trả lời bằng cách xem mã nguồn - gọi "setState ('hover');" vào thời điểm bạn muốn được đánh dấu.

+3

và để loại bỏ trạng thái di chuột, hãy gọi "setState();" không có đối số – d2vid

+0

bất cứ ai có một mã jsfiddle hoặc chi tiết hơn về điều này? – jhanifen

+7

Đây là một jsfiddle đặt trạng thái di chuột và hiển thị chú giải công cụ: http://jsfiddle.net/xW2MW/ (thông qua [HighCharts forum] (http://highslide.com/forum/viewtopic.php?f=9&t= 7094)). – BrianS

8

Chỉ cần thêm một thông tin quan trọng:

Đối StockChart giải pháp này không làm việc:

Trong this example bạn phải thay thế này:

chart.tooltip.refresh(chart.series[0].data[i]); 

này:

chart.tooltip.refresh([chart.series[0].points[i]]); 

Một giải pháp có thể có sẵn here .

1

Để cung cấp một câu trả lời trực tiếp hơn (ví dụ cho sau đó bạn không có quyền truy cập vào các ví dụ highcharts):

bạn cần để tạo ra một sự kiện mouseover và cung cấp cho nó Trang X đúng đắn và Trang Y thuộc tính trước khi bạn kích hoạt nó.

0

Dưới đây là một ví dụ về cách chọn (di chuột) các điểm có hiệu lực cuối cùng trong loạt lập trình:

// Find last not-null point in data 
    let last = data.indexOf(null) - 1; 
    last = (last === -2) ? data.length - 1 : last; 
    const lastPoint = this.series[0].points[last]; 

    // Trigger the hover event 
    lastPoint.setState('hover'); 
    lastPoint.state = ''; // You need this to fix hover bug 
    this.tooltip.refresh(lastPoint); // Show tooltip 

Full JSFiddle exapmle

enter image description here

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