谷歌地图标记设置为可拖动,但无法拖动。

5

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在另一个页面上也可以工作。也许你最好访问一下这个网站? - user1771561
是的,我明白,但是看一下网站的构建可能会有所帮助。我在我的帖子中添加了一些JavaScript。 - user1771561
不幸的是,我粘贴了一个编辑过的部分。设置一直都是true。奇怪的是,如果我将“clickable”和“draggable”设置为“true”,那么点击事件也不起作用。 - user1771561
2个回答

5

1

试试这个:

 map.setOptions({draggable: true});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接