jquery 每个都不能正常工作

标签 jquery google-maps

我正在尝试循环遍历集合并尝试在循环中设置全局变量。由于某种原因,循环在其他代码完成执行后执行。

示例

在就绪函数之外声明

var lt1,lt2; 

循环

lt1="opp";
$('#map_block').gmap().bind('init', function(ev, map) {
    $.each(places,function(i, val) {
        lt2 = val['h_longitude'];   
        lt1 = (val['h_latitude']);
        clientPosition1 = new google.maps.LatLng(val['h_latitude'], val['h_longitude']);  
        console.log(lt1);
        $('#map_block').gmap('addMarker', {'position': clientPosition1 , 'bounds': false, 'icon':hicon }).click(function() {$('#map_block'). gmap('openInfoWindow', {'content':' Test'});
    });
});
console.log(lt1);

控制台显示如下

opp
41.222
42.4455
43.5566

看起来循环是在最后一个console.log(lt1)执行代码之后执行的。

最佳答案

这是因为 map 是异步加载的。 “本地图完全初始化(有边界)时,它将触发‘init’事件。” source

因此,您的第一个输出是底部的 console.log,结果是 opp。稍后,加载 map ,并触发 init 事件,执行回调匿名函数。该函数使用定义的 each 循环进行迭代并输出其结果。这就是为什么您会看到事件发生的顺序。

如果您需要在 init 之后执行代码,请考虑在 init 回调中调用的函数中执行该代码。

关于jquery 每个都不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962088/

相关文章:

javascript - 谷歌地图网络服务在本地工作但不在线

android - Google Maps Android API - 如何自动选择标记?

android.view.InflateException : Binary XML file line #2: Error inflating class fragment at android. app.ActivityThread.performLaunchActivity

google-maps - 谷歌地图transit_station还显示公交车站

javascript - 基金会数据警报框不会关闭

javascript - Html.CheckBoxFor 的 JQuery Validate 和 C# ASP MVC 问题

jquery:MakeWordsInThisBigWordWithDifferentColors

jquery - 一次加载一行

jquery - Draggables Jquery UI,禁用可放置的单个 div

java.lang.IllegalArgumentException : Illegal character in query at index 59 异常