小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 需求的场景描述(希望解决的问题)
给map上的marker绑定数据,并通过点击marker获取到所绑定的数据
比如给marker设置一个object,当触发marker的markerTab点击事件时,可以拿到这个object
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
谢谢您的关注。
我可能没描述清除。
我这个是需求的问题:我不知道怎么实现我的需求。
你设置的marker,目前marker是有ID的,你点击marker后悔触发回调,那个回调就有id
既然是你自己设置的marker,你肯定是知道他的数据是什么样的,可以自行遍历到对应的objecthttps://developers.weixin.qq.com/miniprogram/dev/component/map.html
我是通过下标的方式获取的 把下标绑定到marker的id上 markerTab点击事件 返回id 获取对象就是 数组[e.XX.id]
我的需求里不是每个marker点击后都可以执行相同逻辑的。
a类的marker点击后执行a逻辑,
b类的marker点击后执行b逻辑,
我考虑过使用a.id这样的形式类作为marker的id,可以解决问题,但是我还不知道如何把marker的种类a和数据id id从上述的a.id中切割出来。
而且文档上说marker最好设置一个number类型的id......
那你的是两组marker? 你要在id那做操作吗? 类似id+a id+b 然后取的时候你只能截取字符串判断?
原计划那么想的,不过后来我改主意了。
id我还用number,因为marker是动态添加的,所以,每个marker我都是这么定义的
marker={id:'',longtitud:'',lattued:'',markerType:'',dataObj:''}
也就是给marker添加了两个自定义的字段,一个表示类型,一个是marker的对应数据。
然后marker添加到var markerList=new Array();
然后把markerList通过this.setData({markers:markerList})设置到地图上;
然后通过this.data.markers获取地图markers集合,然后编辑集合判断所点击的marker是哪个marker。
我的版本是2.7.0,网上搜索的时候发现有人说以前的版本.
当然我还在测试,发现可以使用,只是同一个marker第二次点击的时候,有点问题,大概率是我逻辑上的问题,这个方法是没错
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
谢谢您的关注。
我可能没描述清除。
我这个是需求的问题:我不知道怎么实现我的需求。
你设置的marker,目前marker是有ID的,你点击marker后悔触发回调,那个回调就有id
既然是你自己设置的marker,你肯定是知道他的数据是什么样的,可以自行遍历到对应的objecthttps://developers.weixin.qq.com/miniprogram/dev/component/map.html
我是通过下标的方式获取的 把下标绑定到marker的id上 markerTab点击事件 返回id 获取对象就是 数组[e.XX.id]
我的需求里不是每个marker点击后都可以执行相同逻辑的。
a类的marker点击后执行a逻辑,
b类的marker点击后执行b逻辑,
我考虑过使用a.id这样的形式类作为marker的id,可以解决问题,但是我还不知道如何把marker的种类a和数据id id从上述的a.id中切割出来。
而且文档上说marker最好设置一个number类型的id......
那你的是两组marker? 你要在id那做操作吗? 类似id+a id+b 然后取的时候你只能截取字符串判断?
原计划那么想的,不过后来我改主意了。
id我还用number,因为marker是动态添加的,所以,每个marker我都是这么定义的
marker={id:'',longtitud:'',lattued:'',markerType:'',dataObj:''}
也就是给marker添加了两个自定义的字段,一个表示类型,一个是marker的对应数据。
然后marker添加到var markerList=new Array();
然后把markerList通过this.setData({markers:markerList})设置到地图上;
然后通过this.data.markers获取地图markers集合,然后编辑集合判断所点击的marker是哪个marker。
我的版本是2.7.0,网上搜索的时候发现有人说以前的版本.
当然我还在测试,发现可以使用,只是同一个marker第二次点击的时候,有点问题,大概率是我逻辑上的问题,这个方法是没错