使用 jquery 1.7.2、jquery-tools 1.2.7 和 googlemaps api v3
首先,这是我在 googlemaps 中创建标记的代码片段:
function createMarker(latlng, id) {
var marker = new google.maps.Marker({
map: googleMap,
position: latlng,
});
marker.set('id', id);
google.maps.event.addListener(marker, 'click', function() {
property_id = marker.get('id');
alert("add listener -> " + property_id);
$("#contentWrapBeta").overlay({
mask: {
color: '#ebecff',
loadSpeed: 100,
opacity: 0.5
},
effect: 'apple',
left: '2%',
top: '5%',
load: false,
onBeforeLoad: function() {
alert("on before load" + property_id);
var wrap = this.getOverlay().find(".contentWrap");
wrap.load('details.php?id=' + property_id);
}
});
alert("overlay.load ->" + property_id);
$("#contentWrapBeta").overlay().load();
});
markers.push(marker);
}
因此,当我单击第一个标记时,警报“添加侦听器”会以正确的 property_id 触发,“加载前开启”警报具有正确的属性 ID,并且“overlay.load”具有正确的 ID,出现弹出窗口,一切都很好....
当我单击地图上的第二个标记时,“添加侦听器”警报显示正确的 ID(我设置的新标记 ID),“overlay.load”也是正确的,但是,
“加载前开启”警报具有先前的标记 property_id (!) - 无论我尝试什么,我似乎都无法用我单击的新标记 id 更新它,它“卡在”第一个标记 property_id 上 - 所以 wrap.load () 调用具有相同的 &id= 变量。
谁能告诉我为什么 - 它已经困扰我好几天了!我似乎无法解决它。
非常感谢