]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
ElementsAtLabel now returns all datasets' elements at the found index
authorTanner Linsley <tannerlinsley@gmail.com>
Mon, 2 Nov 2015 05:44:31 +0000 (22:44 -0700)
committerTanner Linsley <tannerlinsley@gmail.com>
Mon, 2 Nov 2015 05:44:31 +0000 (22:44 -0700)
src/core/core.controller.js

index 91592779a3ea09d3c8cc770362fb2304a98950bd..7ec01bad44b52c0e1ae04b20616b4f0ce06e96ad 100644 (file)
                        var eventPosition = helpers.getRelativePosition(e, this.chart);
                        var elementsArray = [];
 
-                       helpers.each(this.data.datasets, function(dataset, datasetIndex) {
-                               if (helpers.isDatasetVisible(dataset)) {
-                                       helpers.each(dataset.metaData, function(element, index) {
-                                               if (element.inLabelRange(eventPosition.x, eventPosition.y)) {
-                                                       elementsArray.push(element);
+                       var found = (function(){
+                               for (var i = 0; i < this.data.datasets.length; i++) {
+                                       if (helpers.isDatasetVisible(this.data.datasets[i])) {
+                                               for (var j = 0; j < this.data.datasets[i].metaData.length; j++) {
+                                                       if (this.data.datasets[i].metaData[j].inRange(eventPosition.x, eventPosition.y)) {
+                                                               return this.data.datasets[i].metaData[j];
+                                                       }
                                                }
-                                       }, this);
+                                       }
                                }
+                       }).call(this);
+
+                       if(!found){
+                               return elementsArray;
+                       }
+
+                       helpers.each(this.data.datasets, function(dataset, dsIndex){
+                               elementsArray.push(dataset.metaData[found._index]);
                        }, this);
 
                        return elementsArray;