我正在尝试将现有的工作中的Google Map代码迁移到基于Javascript Object的方式,但是我遇到了一些错误,无法弄清楚。最初所有标记都已加载,并且在发生任何事件(单击,拖动等)时都会抛出该错误错误TypeError:gj未定义。
我想以下几行是导致错误的原因:
google.maps.event.addListener(mapObj.polymap, "dragend", mapObj.mapSearch());
google.maps.event.addListener(mapObj.polymap.getPath(), "insert_at", mapObj.mapSearch());
google.maps.event.addListener(mapObj.polymap.getPath(), "remove_at", mapObj.mapSearch());
google.maps.event.addListener(mapObj.polymap.getPath(), "set_at", mapObj.mapSearch());
最佳答案
google.maps.event.addListener
的第三个参数应该是一个函数,但是您提供的是函数调用,而不是函数。
您必须在函数名称后删除括号:
google.maps.event.addListener(mapObj.polymap, "dragend", mapObj.mapSearch);
google.maps.event.addListener(mapObj.polymap.getPath(), "insert_at", mapObj.mapSearch);
google.maps.event.addListener(mapObj.polymap.getPath(), "remove_at", mapObj.mapSearch);
google.maps.event.addListener(mapObj.polymap.getPath(), "set_at", mapObj.mapSearch);
//.................
google.maps.event.addDomListener(window, 'load', mapObj.init);