javascript - Google map API - place_changed 监听器在第二次单击时触发

标签 javascript jquery google-maps-api-3

JS

var location_input = document.getElementById('location');
var autocomplete = new google.maps.places.Autocomplete(location_input);

google.maps.event.addListener(autocomplete, 'place_changed', function(){
  alert('here');
  console.log('here');
});

HTML

{{Form::input('text', 'location', null, ['id' => 'location', 'class' => 'form-control']) }}

@section('after-scripts')
    {!! Html::script('PATH_TO_SCRIPT.js') !!}
@endsection

如果我在结果中向下箭头并按 Enter 键,该事件就会触发。如果我单击列表中的一个项目,然后单击返回输入框,然后再次单击同一项目,它也会起作用。

我遇到的问题是该事件应该在第一次单击所选项目时触发,而不是第二次单击。

最佳答案

这对我来说是一个愚蠢的错误。我在与问题中提到的代码不同的位置的同一文本字段上使用了自动完成方法。一旦我删除了第二个自动完成功能,一切就开始按预期工作。

一点点 sleep 的作用真是令人惊奇。

关于javascript - Google map API - place_changed 监听器在第二次单击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41755338/

相关文章:

javascript - GeoJSON、重叠指针、OverlappingMarkerSpiderfier

javascript - 将数据从一个组件传递到另一组件

javascript - 从库中返回一个对象?

非零持续时间的 jQuery 隐藏/显示在 Firefox 中不起作用(但在 Chrome 中起作用)

javascript - StreetView 中标记上的 InfoWindows

ios - 是否可以使用谷歌地图将 webapp 功能嵌入到 map 中?

javascript - 在 Google Chrome 中调试

javascript - 如何检查 Selection 对象是否包含两个同级 'Div' 或 'P'

php - 访问html中的mysql值通过jquery发送到php文件

jquery - jQuery 会自动解码 data-* 属性吗?