当我点击下拉列表中的某个项目时,我遇到了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;
}
答案 0 :(得分:1)
我终于找到了问题的原因。正文设置为draggable,并且拖动事件绑定到返回false的函数。该事件干扰了自动完成中的位置设置。