给Tooltip内元素 绑定事件 改变Tooltip显示内容(leaflet、bindTooltip )

这篇博客详细介绍了如何在地图应用中实现一个交互式的tooltip,该tooltip用于展示长度测量值,并允许用户在米、千米和海里之间切换单位。通过监听点击事件并更新tooltip内容,实现了单位之间的动态转换。代码示例展示了使用JavaScript进行操作的方法。
摘要由CSDN通过智能技术生成
layer.bindTooltip(
`
	<divclass="tip-box">
	  <div class="tip-box-top">
	    <div class="item">米</div>
	    <div class="item">千米</div>
	    <div class="item">海里</div>
	  </div>
	  <div class="tip-box-bottom">
	    长度:${this.messureLength.toFixed(4)} 千米
	  </div>
	</div>
`,{direction:'top', permanent:true,interactive:true}).openTooltip();
 //permanent:true  让tooltip一直显示 ; interactive:true  让tooltip可以绑定事件
   
this.switchUnits(layer)
switchUnits(target) {
  let that = this
  let mytooltip = target.getTooltip()
  let items = mytooltip._container.getElementsByClassName('item')
  items.forEach((element,index) => {
    element.addEventListener('click',function () {
      let temp = ''
      switch(index)
      {
        case 0:
          temp = 'metre'
          break;
        case 1:
          temp = 'kilometre'
          break;
        case 2:
          temp = 'seamile'
          break;
      }
      that.changeVal(temp,mytooltip._container);
    });
  });
},
changeVal(val,element) {
  let dom = element.getElementsByClassName('tip-box-bottom')[0]
  if(val == 'metre') {
    let length = this.messureLength * 1000
    dom.innerHTML = `${length.toFixed(4)}`
  }else if(val == 'kilometre') {
    dom.innerHTML = `${this.messureLength.toFixed(4)}`
  }else if(val == 'seamile') {
    let length = this.messureLength * 0.539956803456
    dom.innerHTML = `${length.toFixed(4)}`
  }
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值