首页 > web前端 > js教程 > 正文

使用闭包循环加载点击事件

坏嘻嘻
发布: 2018-09-13 18:07:00
原创
1843人浏览过

本文我们将和大家分享两种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

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

相关推荐:

JS中for循环闭包问题如何解决

JS 循环li添加点击事件 (闭包的应用)

以上就是使用闭包循环加载点击事件的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号