4

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);
    }
});
4

2 回答 2

5

你有draggable: false,

将其更改为true

看到它在这里工作:http: //jsfiddle.net/RASG/vA4eQ/

于 2012-10-24T15:42:10.870 回答
0

尝试这个:

 map.setOptions({draggable: true});
于 2013-10-03T08:37:42.870 回答