2016-10-10 79 views
-1

我目前有一個谷歌地圖集成到我的網站。我在地圖內有2個谷歌地圖標記。谷歌地圖標記改變OnClick

在鼠標懸停和鼠標移出時,這兩個標記圖像會根據我的需要更改。這一切都工作。

我有它的設置,一旦標記被點擊,頁面URL更改和重新加載。這一切工作正常。

我的問題是,我想我的谷歌標記圖標也改變時,點擊標記。

爲了簡單起見,

  • 標記A =單擊。

    新的頁面從標記點擊加載點擊。

    標記A應在新頁面上更改圖標。

我希望我已經解釋過這是一種直接的方式。這是我目前的代碼。

var iconBase = window.location.origin + '/assets/images/map_red_small_full_icon.png'; 

var marker = new google.maps.Marker({ 
position: {lat: 54.339549, lng: -5.266286}, 
map: map, 
icon: iconBase 
}); 

marker.addListener('click', function() { 
    window.history.pushState('obj', 'newtitle', '/locations#marker1'); 
    marker.setIcon(iconBasetitle); 
    location.reload(); 
    $('body').scrollTop(0); 
}); 

因此,網址根據點擊標記的時間而改變。新頁面加載但標記不會更改。

任何人都可以解釋我錯過了什麼嗎?

謝謝

+0

請提供[MCVE]演示這個問題。 「新」頁面如何設置標記的更新圖標? – geocodezip

+0

@geocodezip:*«「新」頁面如何設置更新的圖標»*這看起來是個問題......它認爲問題是完整的......可能無法驗證,但完整。 –

回答

0

我想這是iconBasetitle新的圖標,marquer被點擊時。

由於頁面重新加載,整個腳本也重新加載。
所以你的marquer被重置爲原來的狀態。

您只需在腳本中添加一些內容以根據您在URL中添加的散列來更改圖標。

像這樣的事情可能會做的事:

if(window.location.hash) { 
    var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character 
    if(hash=="marker1"){ 
     marker.setIcon(iconBasetitle); 
    } 
}