谷歌地图infoWindow - 关闭内容销毁?

时间:2011-08-25 09:24:09

标签: javascript google-maps-api-3 mootools

我在我的网站上使用谷歌地图。我有一个infoWindow,我填充了这样的内容:

infowindow = new google.maps.InfoWindow({ content: $('infoWindowContent') });

google.maps.event.addListener(mapMarker, 'click', function() {
    $('infoWindowContent').setStyle('display','block');

    $('iw_companyName').innerHTML = "stuff";
    $('iw_recommends').innerHTML = "stuff";
    $('iw_activity').innerHTML = "stuff";

    infowindow.open(googleMap,item);

});

$('infoWindowContent')是我在html中创建的页面元素:

<div id="mapholder" class="box">
    <div id="infoWindowContent" style="display:none;">
        <div class="center">
            <h4><a id="iw_companyName"></a></h4>
            <div>Activity: <a id="iw_activity"></a></div>
            <div id="iw_recommends"></div>
        </div>                        
    </div>                
    <div id="map_canvas"></div>
</div>

因此,在创建页面时,内容是不可见的。当用户单击标记时,infoWindow将出现在那里,并使用适当的值填充内容。如果用户单击另一个标记,则infoWindow会移动,并且其值会更改。

问题是当用户点击“&#39; x&#39;信息窗口顶部的按钮关闭它。关闭功能正常,但当用户再次单击标记时,我收到以下错误:

$("infoWindowContent") is null
[Break On This Error] $('infoWindowContent').setStyle('display','block');

因此,当infoWindow关闭时,$('infoWindowContent')被销毁。

我如何解决这个问题?每次用户点击标记时,我都不想在javascript中构建新的infoWindowContent,因为阅读/理解/更改以这种方式生成的html要困难得多。或者我接近解决方案的方式有缺陷吗?

1 个答案:

答案 0 :(得分:2)

现在遇到了问题。您将div对象设置为 infoWindow 的内容。因此,关闭 infoWindow 后,整个对象都会被销毁。这是修复,只设置HTML,而不是对象作为内容。

infowindow = new google.maps.InfoWindow({ content: $('infoWindowContent').get('html') });
相关问题