2016-10-21 82 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" />