Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
692 views
in Technique[技术] by (71.8m points)

javascript - Leaflet Map: Tooltip on clicking instead on mouseover a marker

I want to have a tooltip on clicking my marker, but I don't find a way to make this. Leaflet seems to open tooltips only with mouseover.

This is my code:

var marker = L.marker([x1, y1], {icon: myIcon})
.addTo(map)
.bindTooltip('<?=$desc[$i]?>', {direction:'top', sticky: false, opacity:0.8, offset:[0, -22] });

Thank you for having a look at this code.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think you can:

  1. Override _initTooltipInteractions function in Layer class.
  2. Add another method, let's say bindClickableTooltip, which shares the same logic with bindTooltip. but instead of calling _initTooltipInteractions, calls another method which has got your custom logic inside. You should remove these two lines
events.mouseover = this._openTooltip;
events.mouseout = this.closeTooltip;

and replace them by

events.click = /* a function which handles opening and closing tooltips */

(Something like line 316 for touch devices)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...