使用闭包循环加载点击事件
程序员文章站
2022-03-14 12:12:37
...
本文我们将和大家分享两种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 }
效果图:
这里只是点击显示信息窗口,其实悬停显示窗口,鼠标滑过显示窗口。
相关推荐:
以上就是使用闭包循环加载点击事件的详细内容,更多请关注其它相关文章!
上一篇: 关于PHP操作文件的基本函数的使用
下一篇: mysql支持存储过程吗
推荐阅读
-
JavaScript的闭包特性如何给循环中的对象添加事件(一)
-
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
-
js闭包理解案例-解决for循环微元素注册事件的问题
-
JS 循环li添加点击事件 (闭包的应用)
-
js实现为a标签添加事件的方法(使用闭包循环)
-
JavaScript的闭包特性如何给循环中的对象添加事件(一)
-
JavaScript 循环添加事件时闭包的影响有哪些解法?
-
javascript闭包传参和事件的循环绑定示例探讨_javascript技巧
-
采用自执行的匿名函数解决for循环使用闭包的问题_javascript技巧
-
javascript闭包传参和事件的循环绑定示例探讨_javascript技巧