Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jQuery Ui accordion и Google Map (https://javascript.ru/forum/misc/43143-jquery-ui-accordion-i-google-map.html)

WRed 24.11.2013 12:45

jQuery Ui accordion и Google Map
 
Ситуация следующяя:
В аккордионе при экспанде должна подгружаться карта гугла,
пробовал вызывать функцию при изменении, но так как имя функций всегда разная то обробатывалось не коректно.

В данном варианте все работает после второго клика по h3 первый клик отображает с height проблемой - тоесть карта не открывается полностью, со второго клика все нормально.

Подскажите пожалуйста решение.

<script>
$(function() {
   $( "#accordion" ).accordion({
     heightStyle: "content"
   });
 });
var map, ren, ser;
var data = {};
function setroute(os)
{
var wp = [];
for(var i=0;i<os.waypoints.length;i++)
wp[i] = {'location': new google.maps.LatLng(os.waypoints[i][0], os.waypoints[i][1]),'stopover':false }
ser.route({'origin':new google.maps.LatLng(os.start.lat,os.start.lng),
'destination':new google.maps.LatLng(os.end.lat,os.end.lng),
'waypoints': wp,
'travelMode': google.maps.DirectionsTravelMode.DRIVING},function(res,sts) {
if(sts=='OK')ren.setDirections(res);
})	
} 
</script>

дальше циклично - данные в скрипт подгружаются из базы-это не важно:
<h3  onClick="submission_{global:submissionid}()">Section 1</h3>
<div>
<div id="mappy_{global:submissionid}" style="width:900px; height:550px;"></div>
<script>
function submission_{global:submissionid}()
{
map = new google.maps.Map( document.getElementById('mappy_{global:submissionid}'), {'zoom':12, 'mapTypeId': google.maps.MapTypeId.ROADMAP, 'center': new google.maps.LatLng({Start Latitude:value}, {Finish Longitude:value}) })
ren = new google.maps.DirectionsRenderer( {'draggable':true} );
ren.setMap(map);
ser = new google.maps.DirectionsService();
setroute(eval('({WayMapValue:value})'))
}
</script>
</div>


Часовой пояс GMT +3, время: 17:39.