我遇到了一个问题,我的功能未定义,但仅限于Firefox,但在Chrome上它完美无缺。我不知道为什么会这样做。这可能是因为firefox需要更新或其他什么?请帮忙。
bindInfoW(marker, content, infowindow);
function bindInfoW(marker, content, infowindow) {
google.maps.event.addListener(marker, 'click', function (){
infowindow.setContent(content);
infowindow.open(map, marker);
});
}
答案 0 :(得分:4)
Firefox比其他浏览器有点严重,需要您在调用之前定义您的函数:
function bindInfoW(marker, content, infowindow)
{
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(content);
infowindow.open(map, marker);
});
}
bindInfoW(marker, content, infowindow);
答案 1 :(得分:1)
我认为这是因为javascript提升功能。建议在块的顶部(功能或全局范围)对所有需要进行decalre,然后使用它 你可以找到一些例子here
你的函数(bindInfoW)必须在javascript中提升,但我不知道为什么这在FF中不起作用
答案 2 :(得分:0)
在>>之后调用函数。
答案 3 :(得分:0)
试试这段代码:
function bindInfoW(marker, content, infowindow) {
google.maps.event.addListener(marker, 'click', function (){
infowindow.setContent(content);
infowindow.open(map, marker);
});
}
bindInfoW(marker, content, infowindow);
答案 4 :(得分:0)
Firefox不会在块中提升功能。 将您的函数声明放在if / else块之外,它应该按原始顺序工作。
有关此问题的更多详细信息: http://statichtml.com/2011/spidermonkey-function-hoisting.html