我正在尝试将现有的工作中的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);

09-18 22:15