当我调用功能国家/地区更改时显示错误无法读取属性' geometry'未定义如何解决此问题请帮助我。并感谢最后的答案和编辑。抱歉我的英语不好。
$(function(){
var autocomplete;
var geocoder;
var input = document.getElementById('cityzip');
autocomplete = new google.maps.places.Autocomplete(input);
function search(){
var location = autocomplete.getPlace();
geocoder = new google.maps.Geocoder();
var lat = location['geometry']['location'].lat();
var lng = location['geometry']['location'].lng();
/*var data = {
lng: lng,
lat: lat
}*/
alert("search clicked");
var pettype = [];
var dogbreed = [];
var catbreed = [];
var color = [];
var sex = [];
$(".pettype:checked").each(function(){
pettype.push($(this).val());
})
$(".dogbreed:checked").each(function(){
dogbreed.push($(this).val());
})
$(".catbreed:checked").each(function(){
catbreed.push($(this).val());
})
$(".color:checked").each(function(){
color.push($(this).val());
})
$(".sex:checked").each(function(){
sex.push($(this).val());
})
var data = {
lng: lng,
lat: lat,
kmrange: $("#kmrange").val(),
country: $("#country").val(),
pettype: pettype,
dogbreed: dogbreed,
catbreed: catbreed,
color: color,
sex: sex,
}
console.log(data);
}
$("#location").click(function(){
search();
})
$('#country').on('change', function() {
search();
})
答案 0 :(得分:3)
您无法从$(function(){})块之外调用搜索方法,因为范围在javascript中的工作方式。但是,您可以这样做:
var myNamespace = {};
$(function() {
myNamespace.search = function() {};
});
然后只要$(function(){})已经执行,你就可以从任何地方调用myNamespace.search()。