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

标签 jquery google-maps-api-3

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

我查看了是否有任何听众可能会干扰,但我没有看到任何听众。如果我跟踪 Google map 代码,我可以看到似乎正在触发点击事件,但它没有检测到位置字段中的更改,因此不会触发 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;
}

最佳答案

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

关于jquery - 谷歌地图自动完成 place_changed 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846703/

相关文章:

jquery - 如何在不使用bootstrap的情况下使用scrollspy

javascript - 如何从谷歌地图获取纬度和经度?

jquery - 如何在JQuery中获取服务器当前日期和时间

javascript - jquery - 如何排队一系列的 css 属性更改

jquery - 使用 jquery .css 修改的元素样式未在 Chrome 上刷新

mysql - 如何在数据库中保存 Google map 叠加形状?

javascript - Google map KML 图层是否包含 map 中心点

google-maps-api-3 - 单击 Ember 上的“后退”按钮后,谷歌地图调整大小不起作用

javascript - 我可以从 Google map (v3) 中删除网格线吗?

javascript - 如何查看元素绑定(bind)了哪个 jQuery 函数?