次のような JavaScript コードがありますが、foo() 内で「myVar」を使用しようとすると、その値は未定義です。また、変数を bar() に渡して直接割り当てようとしましたが、参照渡しはしません。
function foo() {
bar();
var myVar = document.getElementById('coords').value;
// myVar should now be (40.7143528, -74.0059731)
alert(myVar); // returns blank
var request = {
location: myVar,
radius: 500,
types: [type] //previously defined
};
//Then send a search request to Google...
}
function bar() {
geocoder.geocode( {'address':address}, function(results, status) {
document.getElementById('coords').value = results[0].geometry.location;
// Let's say the location is NYC (40.7143528, -74.0059731)
alert(document.getElementById('coords').value); //returns the correct value
// however, this pops up after the pop up in function foo()
});
}
次のHTMLで
<input type="hidden" id="coords" name="coords"/>
それが違いを生む場合、実際のコードはGoogle Maps APIを使用しています: