百度地图JS api给marker和label添加点击事件

话不多说,直接上代码:

    var points = []; //坐标点数组
    var label = []; //label数组
	var marker = []; //marker数组
	$.each(data, function(index,value){
	    var myIcon = new BMap.Icon("https://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {  
            offset: new BMap.Size(10, 25), // 指定定位位置  
            imageOffset: new BMap.Size(0, 0 - 12 * 25) // 设置图片偏移  
        });
        var point = new BMap.Point(value.lng,value.lat);
        points.push(point);
        marker[index] = new BMap.Marker(point,{icon:myIcon});
        label[index] = new BMap.Label("时间:"+value.datetime,{
        	offset: new BMap.Size(10, -30)
        });
        label[index].setStyle({
        	border: "1px solid #FF6A00",
        	borderRadius: "5px",
        	padding: "5px",
        	color: "#333",
        	backgroundColor: "white",
        });
		marker[index].setLabel(label[index]);
        map.addOverlay(marker[index]);

        label[index].addEventListener("click", function(){ //点击label隐藏label
        	label[index].setStyle({
        		display: "none",
        	})
        });
        marker[index].addEventListener("click", function(){ //点击marker显示label
        	label[index].setStyle({
        		display: "block",
        	})
        });

    });
map.setViewport(points);

这样可以设置多个marker的点击事件,想要更改label样式的话可以使用label.setStyle({});函数,与CSS样式一样,只需把CSS语法的-分隔符去掉,下一个词开头大写就行,例如background-color改成backgroundColor即可。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业前端小白

写了这么久文章,1分钱都没收到

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值