2013-09-23 68 views
1

我試圖顯示谷歌地圖與slideToggle效果如何地圖不完全顯示。谷歌地圖調整大小不起作用

css類已經有100%的寬度。我如何正確使用調整大小選項?

var map; 
function initialize() { 
    var mapOptions = { 
    zoom: 11, 
    center: new google.maps.LatLng(<?php $custom = $this->item->extra_fields; echo $custom[0]->value; ?>, <?php $custom = $this->item->extra_fields; echo $custom[1]->value; ?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 

    }; 
    map = new google.maps.Map(document.getElementById('map-canvas<?php echo $this->item->id; ?>'), 
     mapOptions); 

    } 

google.maps.event.addDomListener(window, 'load', initialize); 

jQuery(document).ready(function ($) { 
    $('#mostrarmapa<?php echo $this->item->id; ?>').click(function() { 

     $('#map-canvas<?php echo $this->item->id; ?>').slideToggle(); 
     $('#map-canvas<?php echo $this->item->id; ?>').addClass('showmap'); 
    }); 
}); 

google.maps.event.trigger(map, 'resize'); 

回答

0

添加地圖的resize觸發事件在slideToggle的回調函數。

$('#map-canvas<?php echo $this->item->id; ?>').slideToggle(function(){ 
    google.maps.event.trigger(map, 'resize'); 
}); 
+0

奇怪的是,我已經嘗試過,並沒有工作。 如果我嘗試直接在控制檯上輸入命令,則顯示如下: google.maps.event.trigger(map,'resize'); undefined – israhes

+0

我的第一個假設是'$(document).ready()'在'google.maps.event.addDomListener(window,'load',initialize)''之前運行 - 所以'resize'事件觸發在尚未初始化的地圖上。在'initialize()'函數中移動'click'監聽器。 –

+0

謝謝Suvi,我照你所說的做了,但仍然不工作http://goo.gl/hqEvWi你可以看看嗎? – israhes

相關問題