Limit onHover to chartArea (#8794)

This commit is contained in:
Jukka Kurkela
2021-04-10 23:13:30 +03:00
committed by GitHub
parent 05ba2eedff
commit 0ae0fd4b2a
2 changed files with 6 additions and 6 deletions

View File

@@ -18,8 +18,8 @@ Namespace: `options`
| Name | Type | Default | Description
| ---- | ---- | ------- | -----------
| `events` | `string[]` | `['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']` | The `events` option defines the browser events that the chart should listen to for. Each of these events trigger hover and are passed to plugins. [more...](#event-option)
| `onHover` | `function` | `null` | Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart.
| `onClick` | `function` | `null` | Called if the event is of type `'mouseup'` or `'click'`. Passed the event, an array of active elements, and the chart.
| `onHover` | `function` | `null` | Called when any of the events fire over chartArea. Passed the event, an array of active elements (bars, points, etc), and the chart.
| `onClick` | `function` | `null` | Called if the event is of type `'mouseup'`, `'click'` or '`'contextmenu'` over chartArea. Passed the event, an array of active elements, and the chart.
### Event Option

View File

@@ -1108,11 +1108,11 @@ class Chart {
// This prevents recursion if the handler calls chart.update()
me._lastEvent = null;
// Invoke onHover hook
callCallback(options.onHover, [e, active, me], me);
if (_isPointInArea(e, me.chartArea, me._minPadding)) {
// Invoke onHover hook
callCallback(options.onHover, [e, active, me], me);
if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {
if (_isPointInArea(e, me.chartArea, me._minPadding)) {
if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {
callCallback(options.onClick, [e, active, me], me);
}
}