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是什么,这将有所帮助_设置
是以及确切地说是全球设置
所包含的内容。谢谢安德鲁,你可以在这个页面上看到:哇,多么愚蠢的错误,谢谢你谢谢你!!非常感谢你的帮助安德鲁,你就是那个人