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/