gpt4 book ai didi

javascript - 如何访问 Google Maps InfoBox 中的 Div?

转载 作者:行者123 更新时间:2023-11-29 15:49:06 26 4
gpt4 key购买 nike

我正在尝试选择 <div>使用 jquery 的 $('#divname')在点击 map 上的许多标记中的任何一个时,Google map 生成的信息框内。

问题:当我尝试使用 $("#gallery") 访问 div 时单击标记后,也就是在该标记的单击事件监听器中,什么也没有发生。我尝试使用 console.log($("#gallery").html()) 从点击监听器获取该 div 中包含的 html它返回 null !!我怎样才能选择这个 div!?

点击事件监听器片段代码

// Create Listeners
markers[i]._index = i;
google.maps.event.addListener(markers[i], 'click', function() {

infoboxes[this._index].open(map, markers[this._index]);
infoboxes[this._index].show();
console.log($('#gallery').html());

});

信息框片段代码

for( i = 0; i < json.length; i++) {

// Place markers on map
var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
var marker = new google.maps.Marker({
position: latLng,
map: map
});
markers.push(marker);

// Create infowindows
var boxText = '<div id="infobox"> \
<div id="infobox_header_title"> \
<span id="infobox_header_price">$' + json[i].price + '</span> \
<span id="infobox_header_room">' + json[i].bedroom + 'br </span> \
<span id="infobox_header_address">' + json[i].address_1 + '</span> \
</div> \
<div id="gallery"> \
<img src="images/cl/' + json[i].photos[0] + '.jpg" /> \
<img src="images/cl/' + json[i].photos[1] + '.jpg" /> \
</div> \
</div>';
var infoboxOptions = {
content: boxText,
disableAutoPan: false,
maxWidth: 0,
pixelOffset: new google.maps.Size(-140, 0),
zIndex: null,
boxStyle: {
},
closeBoxMargin: "10px 2px 2px 2px",
closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
infoBoxClearance: new google.maps.Size(1, 1),
isHidden: true,
pane: "floatPane",
enableEventPropagation: false
};

var infobox = new InfoBox(infoboxOptions);
infoboxes.push(infobox);

//<Click Event Listener code comes in here>

最佳答案

据我所知,您是在循环中添加标记?因此,您为每个标记的 infoWindow 使用相同的 ID,这违反了 HTML/JS/CSS 规则,超过一个具有相同 ID 的元素并且失败是正常的。我要做的是只为我的标记使用类,在事件监听器中你可以像这样获取 .gallery div 的内容(没有尝试过但如果它不起作用你应该明白):

// Create Listeners
markers[i]._index = i;
google.maps.event.addListener(markers[i], 'click', function() {

infoboxes[this._index].open(map, markers[this._index]);
infoboxes[this._index].show();
console.log($(infoboxes[this._index].getContent()).find('.gallery'));

});

关于javascript - 如何访问 Google Maps InfoBox 中的 Div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7859275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com