I tried everything I found on google and I can't figure out how to trigger the popup.
<Marker
position={this.props.position}
onMouseOver={() => { openPopup() }}
onMouseOut={() => { closePopup() }}
>
<Popup>
"HI"
</Popup>
</Marker>
Note: I know I can't trigger the function openPopup there its just to show where I want to implement the trigger function to toggle the popup on mouse hover.
Can someone please help, Thanks.
Leaflet Marker object is accessible via event.target
property of mouseover
and mouseout
events, so popup could be opened/closed like this:
<Marker
position={position}
onMouseOver={(e) => {
e.target.openPopup();
}}
onMouseOut={(e) => {
e.target.closePopup();
}}
>
<Popup>Sydney</Popup>
</Marker>
Demo
Using React Leaflet v3, the solution is easier and cleaner, use Tooltip
instead of Popup
, e.g.:
<Marker position={this.props.position}>
<Tooltip>I appear on mouse over</Tooltip>
</Marker>
In particular, I have found useful to also add sticky
property for Tooltip
. There are more examples for tooltips in the documentation, which covers basic tooltips, sticky tooltips or permanent tooltips, with offsets and many more.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With