There are some issues with the opacity when a new event is fired during the transition (if you move the mouse from one circle to the other). This could be solved if you also add a transition of the same duration to the this element on setting the opacity to 1.
I don't like too much the fact of adding the property index to the dataset, but I haven't found any better way to do that!
Anyway, good job!