Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON对象属性在映射事件处理程序中未定义_Javascript_Jquery_Json_Google Maps Api 3 - Fatal编程技术网

Javascript JSON对象属性在映射事件处理程序中未定义

Javascript JSON对象属性在映射事件处理程序中未定义,javascript,jquery,json,google-maps-api-3,Javascript,Jquery,Json,Google Maps Api 3,我在这里读了一些文章,我了解到我的globalSettings属性在google.maps.event.adddomstener函数中不可用存在范围问题 console.log语句返回undefined,但如果我返回console.log(globalSettings),它将显示对象及其属性 如何使属性可用,以便使用它们初始化地图中心和缩放 var globalSettings = jQuery.parseJSON(wpmm_settings); var ICON = new google.ma

我在这里读了一些文章,我了解到我的
globalSettings
属性在
google.maps.event.adddomstener
函数中不可用存在范围问题

console.log
语句返回
undefined
,但如果我返回
console.log(globalSettings)
,它将显示对象及其属性

如何使属性可用,以便使用它们初始化地图中心和缩放

var globalSettings = jQuery.parseJSON(wpmm_settings);
var ICON = new google.maps.MarkerImage('medicare.png', null, null,
    new google.maps.Point(14, 13));

var SHADOW = new google.maps.MarkerImage('medicare-shadow.png', null, null,
    new google.maps.Point(14, 13));

google.maps.event.addDomListener(window, 'load', function(globalSettings) {
    console.log(globalSettings.map_center_lat);
  var map = new google.maps.Map(document.getElementById('map-canvas'), {
    center: new google.maps.LatLng(globalSettings.map_center_lat, 135),
    zoom: 4,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });...

wpmm_设置
是一个字符串:

"[{\"default_zoom\":\"8\",\"map_center_lat\":\"51.4992913\",\"map_center_lng\":\"-0.1639785\"}]"
globalSettings
是解析该字符串的结果:

[Object { default_zoom="8", map_center_lat="51.4992913", map_center_lng="-0.1639785"}]
请注意,由于最外层的方括号,它最终成为一个单元素数组

map\u center\u lat
的值作为
globalSettings[0]访问。map\u center\u lat

如果从字符串中取出最外层的方括号,将得到一个“裸”对象,并且可以按预期访问属性

然后。。。
google.maps.event.addDomListener(窗口“加载”,函数(全局设置){…

不将
globalSettings
传递给事件处理程序。事件被传递-这是标准行为:事件被传递给事件处理程序。此行所做的是将该函数中的
globalSettings
设置到
窗口。加载
事件。因此您需要替换提及的
globalSettings
wi类似于
evt
的东西,您可以在函数中忽略它


代码片段中的
代码仍然存在问题,但是正确地找到对象和事件处理程序将使查找更容易。

我不认为这与Google Maps API有多大关系。它似乎与JSON对象在事件处理中的行为有关。如果您能够准确地说出
wpmm是什么,这将有所帮助_设置
是以及确切地说是
全球设置
所包含的内容。谢谢安德鲁,你可以在这个页面上看到:哇,多么愚蠢的错误,谢谢你谢谢你!!非常感谢你的帮助安德鲁,你就是那个人