diff --git a/src/core/core.interaction.js b/src/core/core.interaction.js index be85a080f76..84073b0ed35 100644 --- a/src/core/core.interaction.js +++ b/src/core/core.interaction.js @@ -37,6 +37,7 @@ function parseVisibleItems(chart, handler) { for (j = 0, jlen = meta.data.length; j < jlen; ++j) { var element = meta.data[j]; if (!element._view.skip) { + element.datasetlength = meta.data.length; handler(element); } } @@ -281,8 +282,11 @@ module.exports = { parseVisibleItems(chart, function(element) { if (element.inXRange(position.x)) { items.push(element); + // Cleanup extra elements + if (items.length > 1) { + items.splice(1, items.length); + } } - if (element.inRange(position.x, position.y)) { intersectsItem = true; } diff --git a/src/elements/element.point.js b/src/elements/element.point.js index eab5b31d453..7d9a6a38d32 100644 --- a/src/elements/element.point.js +++ b/src/elements/element.point.js @@ -24,7 +24,7 @@ defaults._set('global', { function xRange(mouseX) { var vm = this._view; - return vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false; + return vm ? (Math.abs(mouseX - vm.x) < 2) : false; } function yRange(mouseY) {