dc-js / dc.leaflet.js

DC charts using Leaflet maps
Apache License 2.0
52 stars 24 forks source link

LeafletMarkerChart hangs when popup moves chart 2 times #26

Open gordonwoodhull opened 7 years ago

gordonwoodhull commented 7 years ago

From @thebarbarian on January 17, 2017 8:7

I am not sure if it's a bug or my terrible JS-coding, please remove this if i messed up.

When displaying a LeafletMarkerChart and clicking a marker on the edge of the map, the creation of the textballoon will move the map slighly until it fits inside the frame. If i do this two times, i'm unable to drag the map. It's stuck. The console gave me the following error after the map is stuck and i click a marker:

_markerList.indexOf is not a function(…)

After changing line 583 of dc-leaflet.js :

(_markerList.indexOf(_chart.filter()) !== -1 &&

into this:

(_markerList.toString().indexOf(_chart.filter()) !== -1 &&

the problem is solved. Adding the toString()-method doesn't seem to affect any of the other graphs on my dashboard.

My apologies if this isn't a bug, but it seemed to make sense to let the developers know.

Copied from original issue: dc-js/dc.js#1263

gordonwoodhull commented 7 years ago

Thanks @thebarbarian for the report!

I wouldn't be surprised if there is a bug here, but that solution is kind of odd because _markerList is an array, so it should be searched using Array.indexOf not String.indexOf.

I think it should still work if your keys are not of type string, but maybe there is some odd case here.

If you can create a fiddle demonstrating the problem, that would be helpful.

thebarbarian commented 7 years ago

Hi Gordon, The keys are Strings indeed. I'll make a fiddle soon, but it takes some time because I need to change some data (i work in healthcare.)