我在慢慢學習&構建地圖應用程序,該應用程序將使用Google地理編碼API在Google地圖上顯示搜索字詞。我的問題是,我試圖通過console.log(我將嘗試發送到Google地址解析API)來查看onclick監聽器末尾的搜索字詞。兩次點擊按鈕以獲取正確的console.log輸出
我遇到的問題是,當我在搜索名稱中鍵入字符&單擊該按鈕時,我得到console.log輸出,但是一開始單擊它爲空或上一個術語,如果我單擊一旦。當我再次點擊時,它會顯示正確的輸出。
據推測,onclick監聽器以某種方式使用緩存的術語?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
#map-canvas {
width: 100%;
height: 600px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
</head>
<body>
<form id="search">
<p><input id="search-name" type="text" placeholder="Type Region Here"></p>
<p><input id="search-submit" type="submit" value="Search For Region"></p>
</form>
<p id="demo"></p>
<div id="map-canvas"></div>
<script type="text/javascript">
// Global Variables
var name;
//map options
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(37.09024, -100.712891),
panControl: false,
panControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false
};
//Fire up Google maps and place inside the map-canvas div
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
// Button Click
document.getElementById("search-submit").addEventListener("click", function(){
// Search Submit
$(function() {
$("#search").submit(function(event){
event.preventDefault();
name = $("#search-name").val();
return name;
});
});
// console.log("Search term after search submit is: "+name);
console.log("Search term at end is: "+name);
});
</script>
</body>
</html>
編輯:
有興趣的人知道我是如何解決它,我做了以下(作爲一個單獨的.js文件 - 但它會在script標籤內工作):
$(document).ready(function(){
//Map Options
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(37.09024, -100.712891),
panControl: false,
panControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false
};
//Map Creation
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
// Search Submit
$("#search").submit(function(event){
event.preventDefault("", function(){
//
});
name = $("#search-name").val();
console.log("Search term at submit is: "+name);
return name;
});
});
'.submit'激發異步。 –