我有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"/>
真正的代码是使用谷歌地图API,如果有差别:
你什么时候打电话给'foo'? –
另外,当我放置调试警报时,似乎在调用bar()之前创建'myVar'。 –
foo()被调用onClick按钮(在HTML中的隐藏变量之前) –