我有谷歌地图javascript代码不行为,我认为它与范围有关,但我无法弄清楚。以下是相关的代码:
function initialize() {
google.maps.event.addListener(MapArea, 'click', showIW);
function showIW(event) {
function moreInfo(){
//...
}
infoWindow.setContent(moreInfo());
}
}
google.maps.event.addDomListener(window, 'load', initialize);
这不起作用(moreInfo未定义),但是,这样做:
function initialize() {
google.maps.event.addListener(MapArea, 'click', showIW);
function showIW(event) {
infoWindow.setContent(moreInfo());
}
}
function moreInfo(){
//...
}
google.maps.event.addDomListener(window, 'load', initialize);
为什么在第一个场景中未定义moreInfo(),即使我在调用之前定义了moreInfo()?
答案 0 :(得分:0)
问题是你只是定义了B
函数并没有调用它。
所以,B
内的任何内容都永远不会执行。我也没有看到你给A打电话,既然你没有回复任何东西,那就是undefined
。
您可以使用自动执行功能或只是调用它。
function A() {
function B() {
function C(){
//...
}
// call C()
}
B(); // you call it here, which in turn calls C
}