Javascript 为什么Google Places API不执行我的请求?
我试图创建一个简单的应用程序,在其中插入搜索区域、搜索内容和搜索半径。我不明白为什么它只有在第二次执行查询搜索时才能正常工作,我知道问题可能出在我的codeAddress()函数中:Javascript 为什么Google Places API不执行我的请求?,javascript,html,google-places-api,Javascript,Html,Google Places Api,我试图创建一个简单的应用程序,在其中插入搜索区域、搜索内容和搜索半径。我不明白为什么它只有在第二次执行查询搜索时才能正常工作,我知道问题可能出在我的codeAddress()函数中: function codeAddress(){ var address = document.getElementById('Zona').value; geocoder.geocode( { 'address': address}, function
function codeAddress(){
var address = document.getElementById('Zona').value;
geocoder.geocode( { 'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK){
map.setCenter(results[0].geometry.location);
coordo = results[0].geometry.location;
}else{
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
出于某种原因,我不知道它会跳过,它不会进入geocoder.geocode({'address':address},函数(结果,状态)
,但如果是第二次执行函数,而不是第一次执行,它会进入
以下是应用程序:
如果您输入一个城市名称并单击按钮一次,它只需找到位置,如果您再次按按钮,它将按预期工作,它将删除PIN并创建表格。有人知道原因吗?谢谢。我已经查看了您的代码,正如您所说,函数codeAddress第一次跳转。 我在google site developers上查找地理编码服务的操作,我发现codeAddress函数的行为方式与您的相同 为了解决您的问题,我想您可能会在地理编码之前和启动函数searcha之后运行 为此,我想我应该使用jQuery更改:
$ ("input"). change (function () {
//your code here
})
您的函数应该如下所示:
$(document).ready(function(){
$("#Zona").change(function codeAddress(){
var address = document.getElementById('Zona').value;
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK){
coordo=(results[0].geometry.location);
}else{
alert('Geocode was not successful for the following reason: ' + status);
}
});
});
});
我用我的更改修改了您的示例,您可以在此处查看:
你可以照此操作。我已经解决了所有问题。我不明白。它对我有效。你能更具体地说明什么不起作用吗?