问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于循环设置点击事件

发布网友 发布时间:2022-05-14 15:26

我来回答

2个回答

懂视网 时间:2022-05-14 19:48

本文我们将和大家分享两种JS中for循环闭包问题如何解决的方法,希望能帮助到大家。

最近一个项目也要用到地图功能,公司内部的项目,就去研究了一下百度地图的API。 感觉跟天地图的API还是有很多的相似之处。 基本的使用方式 是差不太多的。不过百度地图反应要比天地图快不少。 而且现在来用百度地图,以前用天地图时候的一些问题也有了更清晰的解释。


1.准备数据。点的信息。


		var points = [
		{"lng":116,"lat":40,"url":"http://www.baidu.com","id":50,"name":"p1"},
		{"lng":117,"lat":31,"url":"http://www.taobao.com","id":2,"name":"p2"},
		{"lng":116,"lat":34,"url":"http://www.google.com","id":3,"name":"p3"}
		]


2.加载地图。中心点和显示级别默认中国。



		var map = new BMap.Map("container"); 
		map.centerAndZoom(new BMap.Point(103.388611,35.563611), 5);//设置中心点和显示级别。中国。
		map.enableScrollWheelZoom();//滚轮放大缩小。


3.循环显示标注点marker。使用立即执行函数和闭包循环加载点击事件显示信息窗口显示该标注点的更多信息。



		function addMarker(points){ // 创建图标对象 

			// 创建标注对象并添加到地图 
			for(var i = 0,pointsLen = points.length;i <pointsLen;i++){
				var point = new BMap.Point(points[i].lng,points[i].lat);	
				var marker = new BMap.Marker(point); 
				map.addOverlay(marker); 
				//给标注点添加点击事件。使用立即执行函数和闭包
				(function() {
					var thePoint = points[i];
					marker.addEventListener("click",function(){
						showInfo(this,thePoint);
					});
				})();

			}

		}


4.点击显示标注点markers的信息窗口。



	//显示信息窗口,显示标注点的信息。
	function showInfo(thisMaker,point){
		var sContent =
		'<ul style="margin:0 0 5px 0;padding:0.2em 0">'
		+'<li style="line-height: 26px;font-size: 15px;">'
		+'<span style="width: 50px;display: inline-block;">id:</span>' + point.id + '</li>'
		+'<li style="line-height: 26px;font-size: 15px;">'
		+'<span style="width: 50px;display: inline-block;">名称:</span>' + point.name + '</li>'
		+'<li style="line-height: 26px;font-size: 15px;"><span style="width: 50px;display: inline-block;">查看:</span><a href="'+point.url+'">详情</a></li>'
		+'</ul>';
		var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
	 	thisMaker.openInfoWindow(infoWindow); //图片加载完毕重绘infowindow
	 }




效果图:

20151127155205871.png


这里只是点击显示信息窗口,其实悬停显示窗口,鼠标滑过显示窗口。

热心网友 时间:2022-05-14 16:56

使用闭包,像这样:

for(var i=0;i<10;i++){
    qq.maps.event.addListener(marker[i],"click", (function(i){
        return function(){alert(i);}
    })(i));
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
豫v车牌号是什么意思 2020年成都限号时间 2020年成都市汽车限号的时间及范围 万e贷审核要多久 vivo锁屏键截图怎么取消 掌握vivo手机四种截屏方法,轻松分享你的手机操作(vivo手机截屏技巧大 ... 我姓言给女儿起什么名字好 2024年言姓男宝宝取名大全两个字的名字 姓言的孩子取名男 姓言取什么名字好 姓言的女孩名字超好听 帮我查一下单号022985859833是发到哪里的顺风 小米手机共有哪些型号,每个型号的手机都有什么特点啊 2020年福建厦门新录用事业单位人员试用期期满如何转正定级?? 中职生会计职业生涯规划书怎么写? 行政处罚主体必须符合哪些要求 行政主体的构成要件是什么?? 行政主体应具备什么资格 行政主体承担行政法律责任须具备哪些条件 行政处罚主体必须符合什么要求 行政处罚主体的资格条件 小狗的资料卡怎么做 小狗狗的资料 狗狗的详细资料 行政行为有哪些主体要件有哪些 狗的资料有哪些? 在Windows 7中那个实用工具可以实现音视频的播放. ffmpeg 支持midi吗 84消毒液喷到衣服上了!! 有什么歌适合声音清澈的女生在全民k歌中唱(能得高分的) 电脑上的什么播放器可以播放G.729音频谢谢 ffmpeg压缩mp3后为什么音频播放时间减少了 液压手动泵工作原理 离婚后赡养费怎么付 离婚赡养费怎么计算 离婚赡养费怎么计算的 父母离婚赡养费标准 离婚时赡养费怎么算? 离婚时赡养费怎么算 离婚了对子女的赡养费是怎么算的? 新年了应该怎么装饰店的走廊ktv 新年公司要怎么装饰才有年味? 新年儿童乐园店铺装饰 离婚后孩子赡养费应该怎么算 新年装饰品都有哪些 关于股本溢价。急 2014年元旦快到要怎么布置房间或者店面让房间或者店面更有新年的味道和气息 推荐一些好的新年装饰品 日本新年会在家中装饰&quot;镜饼&quot;,有人知道是什么东西来的嘛? 形容新年装饰的句子 求助,双闭包解决循环添加事件监听问题 系统更新之后ppt不见了怎么办