2016-10-21 57 views
0

我有一个问题,包括Google Places API。我已经使用API​​密钥设置了所有内容,列表/建议正常,但place_changed事件在我选择建议时未被触发。Google Places 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" />

回答

1

试试这个,这将工作我已经更新了你的代码,

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") 
}); 

使用搜索盒:

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") 
}); 
+0

谢谢!但我不知道为什么“SearchBox”不起作用。我从Google那里找到一个样本,它们也使用SearchBox - 带有“places_change”状态。 –

+0

@KevinLieser关注此链接,https://developers.google.com/maps/documentation/javascript/examples/places-searchbox –

+0

这就是我所说的页面:正如你所看到的,他们启动'var searchBox = new google。 maps.places.SearchBox(输入);' –

0

没有 “place_changed” 事件或搜索盒.getPlace()功能。它应该是“places_changed”和.getPlaces()

Documentation:

方法

getPlaces()返回值:数组

返回由用户选择的查询,或空,如果没有地方已经发现的是,以与places_changed事件一起使用。

活动

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" />