Отображение динамического фонового изображения в информационном блоке Google Maps на infobox.open
Я пытаюсь добавить фоновое изображение в div, который находится в содержимом информационного блока карт Google. У меня проблемы, потому что функция, которую я использую для изменения.css('background-image'), не распознает идентификатор div. Вероятно, это связано с тем, что строка содержимого не была загружена DOM при открытии информационной панели. Я знаю, что должен добавить событие, слушающее 'domready' или подобное, но я не совсем уверен, как его реализовать. Вот код, о котором идет речь:
var boxContent = var boxContent = "<div id=box><div id=leftside><img id=logo src=" +
logopath + " /><h1>" + number + "<br />" + street +
"<br />" + city + "</h1><h2>" + phone +
"<br /><a target=_blank href=" + website +
">visit website</a></h2></div><div id=menu>" +
"<button id=photo onClick=buttonState(this.id)><img src=infomenu/photoicon.png></button></button>" +
"<button id=comments onClick=buttonState(this.id)><img src=infomenu/commentsicon.png></button>" +
"<button id=games onClick=buttonState(this.id)><img src=infomenu/gamesicon.png></button>" +
"<button id=ed onClick=buttonState(this.id)><img src=infomenu/edicon.png></button>" +
"<button id=stay onClick=buttonState(this.id)><img src=infomenu/stayicon.png></button>" +
"<button id=fly onClick=buttonState(this.id)><img src=infomenu/flyicon.png></button>" +
"<div id=display></div>"
var myOptions = {
content: boxContent,
disableAutoPan: false,
pixelOffset: new google.maps.Size(-400, -173),
closeBoxMargin: "-12px -12px 0px 0px",
closeBoxURL: "close.png",
infoBoxClearance: new google.maps.Size(1, 1),
pane: "floatPane",
enableEventPropagation: false
};
var ib = new InfoBox(myOptions);
google.maps.event.addListener(marker, 'click', function(e) {
map.setZoom(13);
map.setCenter(this.getPosition());
ib.open(map, this, displayphotos(imagepath);
});
function displayphotos(imagepath){
$('#display').css('background-image', 'url(' + imagepath + '1.png)');
}
1 ответ
InfoBox.open
принимает только 2 параметра - карту и привязку. Вам нужно установить это свойство отдельно. Я обнаружил, что проведение ссылки на boxContent
Элемент DOM может сделать вашу жизнь проще.
var boxContent = $("<div id='display'></div>");
var myOptions = {
content: boxContent[0],
disableAutoPan: false,
pixelOffset: new google.maps.Size(-400, -173),
closeBoxMargin: "-12px -12px 0px 0px",
closeBoxURL: "http://www.carltonhotelblanchardstown.com/files/images/a/calendar-popup-close.png",
infoBoxClearance: new google.maps.Size(1, 1),
pane: "floatPane",
enableEventPropagation: false
};