У меня есть страница, в которой у меня есть несколько ссылок, которые должны открывать диалоги jquery-ui с картами google. Поскольку я загружаю координаты из пользовательских полей Wordpress, я выводю координаты в атрибутах rel-данных, чтобы я мог их собрать с помощью jQuery. Все работает, карты инициализируются, но я не могу прикрепить слушателя к объекту карты в массиве карт.Не удается получить доступ к карте google в массиве
Я делаю это, как этот
HTML:
<div class="mapalokacija">
<a title="Gde se nalazimo?" rel="addon-map-<?php echo $counter;?>" class="showmap" data-rel-lat='<?php echo $lat;?>' data-rel-long='<?php echo $long;?>' href='#map-<?php echo $counter;?>'>map</a>
<div class="modal" id="map-<?php echo $counter;?>">
<div id="addon-map-<?php echo $counter++;?>" style="width:400;height:400px;margin:10px auto;"></div>
</div>
JS
var title = '<?php the_title();?>';
window.maps = new Array();
$(document).ready(function(){
var cdc = 0;
$('.showmap').each(function(){
var popup = $(this).attr('href');
var lt = $(this).attr('data-rel-lat');
var ll = $(this).attr('data-rel-long');
var dv = $(this).attr('rel');
console.log(popup,lt,ll,dv,cdc);
cdc++;
addonMap(lt,ll,dv);
});
});
$(window).load(function(){
var counter = 0;
$('.showmap').each(function(){
$('.modal').dialog({
title: 'Gde se nalazimo?',
autoOpen: false,
width: 500,
height: 500,
resizeStop: function(event, ui) {google.maps.event.trigger(window.maps[counter], 'resize') },
open: function(event, ui) {google.maps.event.trigger(window.maps[counter], 'resize');}
});
google.maps.event.addListener(maps[counter], 'idle', function(){ google.maps.event.trigger(window.maps[counter],'resize');});
counter++;
});
});
function addonMap(lat,lng,div,ccc) {
var lat = parseFloat(lat);
var lng = parseFloat(lng);
var latLang = new google.maps.LatLng(lat,lng);
var mapOptions = {
scrollwheel: false,
navigationControl: false,
mapTypeControl: true,
scaleControl: false,
zoomControl: true,
draggable: true,
center: new google.maps.LatLng(lat,lng),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
};
var mapstring = div;
var lmap = new google.maps.Map(document.getElementById(mapstring),mapOptions);
var marker = new google.maps.Marker({
position: latLang,
map: lmap,
title: title
});
window.maps.push(lmap);
}
$('.showmap').click(function(e){
e.preventDefault();
var popup = $(this).attr('href');
var lt = $(this).attr('data-rel-lat');
var ll = $(this).attr('data-rel-long');
var cc = $(popup).attr('rel');
cc = +cc;
console.log(cc);
$(popup).dialog('open');
google.maps.event.trigger(maps[cc], 'resize');
});
Живой пример:
Почему ты хотел слушать 'idle' события? – sabotero
Итак, я могу изменить размер моей карты внутри div –
, чтобы посмотреть на мой ответ ниже. – sabotero