【发布时间】:2012-10-14 15:40:56
【问题描述】:
API v3
我对标记有一个奇怪的问题:
我在地图上放置的标记设置为可拖动,WebInspector 报告它为可拖动,但我仍然无法拖动它。当我越过标记时,光标不会改变。
底层地图是可拖动的,这很有效。
在另一个页面上,使用不同的设置(更少的层),但相同的 javascript,它按预期工作(所以我可以拖动它)。
我还使标记可点击并将一个事件绑定到它,效果很好。鼠标悬停时光标也会发生变化。
我已经用完了选项....为什么我不能拖动它?这可能与某些 zIndex 或图层定位有关吗?据我所知,该地图的 zIndex 比所有其他图层都高....
//显示地图
geocoder.geocode( { 'address':address }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// map options
var mapOptions = {
zoom: 14,
center: results[0].geometry.location,
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false
};
// render map
map = new google.maps.Map(J('#'+mapElementId)[0], mapOptions);
// set marker
marker = new google.maps.Marker({
clickable: true,
draggable: true,
icon: markerImage,
shadow: markerShadow,
shape: markerShape,
map: map,
position: results[0].geometry.location
});
google.maps.event.addListener(marker, 'click', function () { alert('marker clicked'); });
google.maps.event.addListener(marker, 'dragend', function () {
alert('marker dragged')
map.setCenter(marker.getPosition());
J('input[name=coordinates]').val(marker.getPosition());
J('input[name=address]').val('');
});
J('input[name=address]').val(results[0].formatted_address);
}
});
【问题讨论】:
-
嗯,有很多代码,我不知道该发布什么....正如我所指出的,相同的 javascript 适用于另一个页面。如果您访问该网站可能会更好?
-
是的,我明白了,但是,看看网站是如何构建的可能会有所帮助。我在帖子中添加了一些 javascript。
-
不幸的是,我粘贴了一个编辑过的部分。设置一直为真。奇怪的是,如果我将“可点击”和“可拖动”设置为“真”,点击事件也不起作用。
标签: google-maps draggable google-maps-markers