谷歌地图自动完成place_changed未触发

时间:2014-04-03 19:06:19

标签: jquery google-maps-api-3

当我点击下拉列表中的某个项目时,我遇到了place_changed事件未触发的问题。如果我右键单击某个项目,则会触发。如果我左键单击,它有时会触发,但只有大约10%的时间。

我已经看过是否有任何听众可能会干扰,但我没有看到任何。如果我查看Google地图代码,我可以看到点击事件似乎正在触发,但它没有检测到位置字段中的更改,因此不会触发place_changed。所以有些事情似乎阻止了设置位置值。

以下是设置自动填充并设置侦听器的代码。

function initAnyGoogleAutocomplete(searchBoxElementId, placeChangedCallbackFunction) {
    google.maps.event.clearListeners(document.getElementById(searchBoxElementId), 'place_changed');
    var searchBoxReferenceVar = new google.maps.places.Autocomplete(document.getElementById(searchBoxElementId),
    {
        bounds: map.getBounds(),
        componentRestrictions: {country: 'us'}
    });
    google.maps.event.addListener(searchBoxReferenceVar, 'place_changed', placeChangedCallbackFunction);

    return searchBoxReferenceVar;
}

1 个答案:

答案 0 :(得分:1)

我终于找到了问题的原因。正文设置为draggable,并且拖动事件绑定到返回false的函数。该事件干扰了自动完成中的位置设置。