腾讯地图信息化窗口infoWindow中添加点击事件

使用场景:点击地图marker弹出自定义信息窗口,信息窗口中含有可以点击的元素,点击后触发自己想要的点击事件(比如弹窗)。

// 第一步,初始化地图
var center = new qq.maps.LatLng(39.984104, 116.307503);
var map = new qq.maps.Map("container", {
	center: center,
	zoom: 13
});

//第二步,初始marker
 var marker = new qq.maps.Marker({
     position: center,
     map: map
	});
 
 //第三步,初始化infoWindow
 var infoWindow = new qq.maps.InfoWindow({
     map: map,
     position: new qq.maps.LatLng(39.984104, 116.307503),
     offset: { x: -8, y: -32 }
 });
 infoWindow.close();
 
 //第四步,标记Marker点击事件
 qq.maps.event.addListener(marker, 'click', function() {
     infoWindow.open();
     infoWindow.setPosition(marker.getPosition());
     infoWindow.setContent("<img src=\"https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=4143431563,2463070161&fm=26&gp=0.jpg\" class=\"img\"><p id=\"btn\">点击我展示更多内容</p>");//设置信息窗内容
 });
 
 // 第五步,信息窗口的内容变更事件
 qq.maps.event.addListener(infoWindow , 'content_changed', function() {
 	// 这里需要加一个延时,给DOM元素的加载预留时间
	setTimeout(function() {
	// 这里判断一下id为btn的元素是否已经绑定过了点击事件,避免重复绑定导致点击一次触发两次点击事件
	var objEvt = $._data($("#btn")[0], "events");
	if (objEvt && objEvt.click) return;
	// 为信息窗口中自定id为btn的元素绑定点击事件
	$('#btn').on('click', function() {
		alert('更多内容');
	})
 }, 400)
 });

注:使用时除了引人官方地图api之外还要引入jQuery

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值