addEventListener为后执行参数,如果以 function(){}那么事件会执行程序最后运行的结果集 demo for(var i;i<10,i++){解决方案:var secRingPolygon = new BMap.Polygon();.addEventListener("secRingPolygonmouseover",function(){alert(i)});
}
这样无论那个点击事件打印的值都为 i 的最后结果集
secRingPolygon.addEventListener("mouseover",setcolor(aa,secRingPolygon)); secRingPolygon.addEventListener("mouseout",resetcolor(aa,secRingPolygon));
setcolor=function(aa,secRingPolygon){ return function(evt){ secRingPolygon.setStrokeColor("red"); secRingPolygon.setStrokeWeight("3"); aa.setStyle({"color":"#333"}); } } resetcolor=function(aa,secRingPolygon){ return function(evt){ secRingPolygon.setStrokeColor("#fff"); secRingPolygon.setStrokeWeight("0.1"); aa.setStyle({"color":"#FFF"}); } }
本文探讨了在使用addEventListener时遇到的变量值更新问题,并提供了一种解决方案,通过立即执行函数确保每次事件触发时都能获取到正确的变量值。

3216

被折叠的 条评论
为什么被折叠?



