2017-03-22 5 views
-1

私は関数内にマーカーを作成しましたが、マップ上に接続されていないページ上のイベントに基づいてマーカーを表示/非表示にする必要があります。私は "marker1.setVisible(true);を使ってみました。イベント内では、私はエラー "マーカー1は定義されていません"を取得します。私がそれを参照できる別の方法はありますか、あるいは何とかマーカーを世界的に利用可能にすることはできますか?外部イベントに基づいてマーカーを表示/非表示にする

ご協力いただければ幸いです。 Andrew。

+1

"関数内にマーカーを作成しました" ... "marker1は定義されていません" - マーカーを作成するコードを入力します。コードのコード部分が定義されていないと判断した場合は、そこから開始する必要がありますが、これを判断するには完全なコードを確認する必要があります。 – samiles

答えて

1

marker1をグローバル変数として宣言します。 "関数の外で宣言された変数はGLOBALになります。 グローバル変数にはグローバルスコープがあります:Webページ上のすべてのスクリプトと関数がアクセスできます。

何かのように:

var marker1; 

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

は、使用できるようになる "marker1.setVisible(真の);"あなたのスクリプトのどこかに。

+0

お返事ありがとうございます。私は関数の外でmarker1を宣言しましたが、関数内から "marker1.setVisible(true)"を使用すると、 "Uncaught TypeError:未定義のプロパティ 'setVisible'を読み取ることができません。 – user2679016

+0

関数内の他の場所に "marker1 = ...."の代わりに "var marker1 = ...."を使用しているかどうか確認してください。 – ReFran

+0

ありがとう、それは恥ずかしいほど簡単です。 – user2679016

関連する問題