##問題事象
クエリパラメータ(?id=〇〇)の値「〇〇」によって、javascriptで表示するGoogle Map APIのcenterを変更したいと考えています。
しかし、idの値が1や2に変わってもif文の条件分岐がうまく作動せず、
「id=1」の時の条件で表示されてしまいます。
function initMap()以前にconsole.logでidの値を確かめると「2」が入っているのですが、
function initMap()以降にconsole.logで確認すると、
・idは「1」を表示する
・centerは、「id=1」の時の値を表示する
という状態です。
グローバル変数を宣言しているにも関わらず、function initMap()以降、idが変わってしまうのはなぜでしょうか?
##実際のコード
javascript
1 var params = (new URL(document.location)).searchParams; 2 var id = parseInt(params.get("id")); 3 console.log(id); //consoleで2が表示される 4 5 6 function initMap() { 7 // mapLatLngで地図の作成 8 9 // #mapに地図を埋め込む 10 11 if(id = 1) { 12 center = {lat: -33.848463912396205, lng: 151.15784284135657}; 13 } else { 14 center = {lat: 35.320904415208695, lng: 140.0162372539994}; 15 } 16 17 map = new google.maps.Map(document.getElementById('map'), { 18 center: center, 19 zoom: 10 20 }); 21 console.log(center); //consoleで{lat: -33.848463912396205, lng: 151.15784284135657}が表示される 22 console.log(id); //idの値が「1」と表示される
回答1件
あなたの回答
tips
プレビュー