2017-03-22 64 views
-1

我在一個函數中創建了一個標記,但需要根據頁面上其他位置的事件顯示/隱藏它,並且不會連接到地圖。我曾嘗試使用「marker1.setVisible(true);」在事件中,但我得到錯誤「marker1未定義」。是否有另一種方法可以參考它,或者我可以以某種方式使標記全局可用?根據外部事件顯示/隱藏標記

任何幫助將不勝感激。 Andrew。

+1

「我在函數中創建了一個標記」...「marker1未定義」 - 提供代碼創建標記的位置。如果代碼的代碼部分認爲它是未定義的,我們應該從那裏開始,但是我們需要查看完整的代碼來確定它。 – samiles

回答

1

將marker1聲明爲全局變量。 「 」在函數外部聲明的變量變爲GLOBAL。 全局變量具有全局範圍:網頁上的所有腳本和函數都可以訪問它。

類似:

var marker1; 

function setMarker(){ 
    //.... 
    marker1 = new google.maps.Marker({map: map,.....}) 
    //.... 
} 

將讓你使用 「marker1.setVisible(真);」腳本中的其他位置。

+0

感謝您的回覆。我已經在任何函數外面聲明瞭marker1,但是當我在函數中使用「marker1.setVisible(true)」時,我得到錯誤「Uncaught TypeError:無法讀取未定義的屬性'setVisible'」。 – user2679016

+0

檢查你是否有其他地方的功能已經使用「var marker1 = ....」而不是「marker1 = ....」 – ReFran

+0

謝謝,這是令人尷尬的簡單。 – user2679016