繁体   English   中英

Google Places API:未触发place_changed

[英]Google Places API: place_changed not fired

我有一个问题,包括Google Places API。 我已经用API密钥设置了所有内容,列表/建议效果很好,但是当我选择建议时,不会触发place_changed事件。

检查小提琴: https : //jsfiddle.net/xj2d77be/3/

它应该工作,但是我绝对不知道为什么不这样做。

代码段(摘自小提琴):

 $(document).ready(function() { var autocomplete = new google.maps.places.SearchBox(document.getElementById('mapLocation')); google.maps.event.addListener(autocomplete, 'place_changed', function() { var place = autocomplete.getPlace(); console.log(place); }); console.log("Initialized") }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maps.google.com/maps/api/js?libraries=places"></script> <input type="text" id="mapLocation" /> 

试试这个,这将起作用我已经更新了您的代码,

https://jsfiddle.net/xj2d77be/4/

$(document).ready(function() {
    var autocomplete = new google.maps.places.Autocomplete($("#mapLocation")[0]);
        google.maps.event.addListener(autocomplete, 'place_changed', function() {
            var place = autocomplete.getPlace();
            console.log(place);
        });
    console.log("Initialized")
});

使用SearchBox:

https://jsfiddle.net/xj2d77be/5/

$(document).ready(function() {
    var searchBox = new google.maps.places.SearchBox(document.getElementById('mapLocation'));
        searchBox.addListener('places_changed', function() {
            var place = searchBox.getPlaces();
            console.log(place);
        });
    console.log("Initialized")
});

SearchBox没有“ place_changed”事件或.getPlace()函数。 它应该是“ places_changed”和.getPlaces()

文档:

方法

getPlaces()返回值:数组

返回用户选择的查询,如果尚未找到要与places_changed事件一起使用的场所,则返回null。

活动

places_changed参数:无

用户选择查询时将触发此事件,应使用getPlaces获取新位置。

注意: .getPlaces()函数返回一个数组,而不是单个位置。

 $(document).ready(function() { var autocomplete = new google.maps.places.SearchBox(document.getElementById('mapLocation')); google.maps.event.addListener(autocomplete, 'places_changed', function() { var place = autocomplete.getPlaces(); console.log(place); }); console.log("Initialized") }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maps.google.com/maps/api/js?libraries=places"></script> <input type="text" id="mapLocation" /> 

对我来说, place_changed事件将在我刷新页面之前触发,然后不再触发(使用本地网页上的Google Chrome浏览器)。 您必须重新启动Chrome或关闭开发人员工具,然后刷新页面才能再次触发该事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM