百度地图上多个marker添加监听,但是总是监听到一样的值

6 篇文章 0 订阅
4 篇文章 0 订阅

今天做项目的时候,在百度地图上多个marker添加监听,但是总是监听到一样的值,监听到最后一个值。
错误的写法

	for (var i = 0; i < positionList.length; i++) {
					var position = positionList[i];
						var point = new BMapGL.Point(position.longitude, position.latitude);
						// 创建标注图标
					var myIcon = new BMapGL.Icon(aa, new BMapGL.Size(30, 30));
					var marker = new BMapGL.Marker(point, {
						icon : myIcon,
					});
					map.addOverlay(marker);
					
					// 标注监听
					pointArray[i] = new BMapGL.Point(position.longitude, position.latitude);
					marker.addEventListener("click", attribute);
					function attribute() {
						getOne(position.vin);
					}
			}

getOne(position.vin);是我自己的另一个方法,传进去一个参数
这段代码运行的结果是不管点击哪个标点,传进去的都是最后一个vin值

正确的代码

		pointArray[i] = new BMapGL.Point(position.longitude, position.latitude);
			marker.addEventListener("click", attribute);
					var attribute = function(i) {
						return function(event) {
							getOne(i);
						};
					}(position.vin);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值