1

私はかなり長い間これに固執していたので、いくつかの洞察に本当に感謝しています。

クリックイベントで(2つの)サークルとマーカーのInfoWindowを表示し、もう一度クリックすると非表示にしようとしています。2 回目のクリック イベントは機能しません。クリックすると内容が表示されますが、2番目に非表示にする代わりに、サークルとInfoWindowを再度ロードするだけです.

これが私のコードです:

// Toggle Radii and InfoWindow — You can run, but you can't hide?
google.maps.event.addListener(marker, 'click', function() {
    if ( ccArray[i].setMap() == null || iwcArray[i].setMap() == null ) {
        // First Click
        infowindow.open(map,marker);
        ccArray[i].setMap(map);
        iwcArray[i].setMap(map);
    } else {
        // Second Click
        alert('You can hide, so just do it.');
        infowindow.open(null,marker);
        ccArray[i].setMap(null);
        iwcArray[i].setMap(null);
    }
});

何か案は?

4

1 に答える 1

1

" if ( ccArray[i].setMap() == null || iwcArray[i].setMap() == null ) {"

ccArrayiwcArrayには google.maps.Circle オブジェクトが含まれます。

google.maps.Circle.setMap() は何も返さない関数です。setMap は円のマップ プロパティを設定するためだけに使用され、取得するためには使用されません。したがって、あなたのコードは常にテストに合格し、else 句に落ちることはないと思います。

本当に ccArray[i] を使いたくありませんか? getMap()と iwcArray[i].getMap() ?

( https://developers.google.com/maps/documentation/javascript/reference#Circleを参照

于 2012-07-12T08:39:56.083 に答える