【问题标题】:Google Maps (API v2) + jQuery UI Dialog, Non stoppable dragging problemGoogle Maps (API v2) + jQuery UI Dialog,不可停止的拖动问题
【发布时间】:2010-12-14 17:12:09
【问题描述】:

嘿!


我正在使用 Google Maps API v2(出于某种原因,它必须成为 v2)和 jQuery UI 1.8.6(和 jQuery 1.4.1)。

情况是: 我在模态对话框中有一张地图。

问题是: 当我点击信息“气球”的阴影并拖动地图时,它不会停止拖动。

我真的不知道我应该提供哪个代码,所以,如果你想让我专门放一些代码,请告诉我。

function createMarker(latitude, longitude, num, color, id_local) {

var iconOptions = {};
iconOptions.width = 32;
iconOptions.height = 32;
iconOptions.primaryColor = ''+color;
iconOptions.label = ''+num;
iconOptions.cornerColor = "#82c4e8";
iconOptions.strokeColor = "#000000";

var newIcon = MapIconMaker.createLabeledMarkerIcon(iconOptions);
//
var point = new GLatLng(latitude,longitude,0);
//
var marker = new GMarker(point, {
    icon: newIcon
});


var html = $('#info_mapa_'+id_local).html();
GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
});

return marker;
}


谢谢。

【问题讨论】:

  • 你能发布所有的听众吗?任何看起来像这样的东西:GEvent.addListener(。它几乎必须是一个事件处理问题。我冒昧地猜测他们使用 v2 的原因是为了地球插件。 code.google.com/p/gmaps-api-issues/issues/detail?id=1480
  • 感谢您的回复。我会尽快发布听众。至于我们使用 v2 的原因是,因为我的老板在尝试迁移到 v3 时浪费了 5 个小时,而且结果并不顺利(根本没有成功)。如果他这么说……
  • @JoshN 希望代码能帮到你:)

标签: jquery jquery-ui google-maps google-maps-api-2


【解决方案1】:

我的老板决定花一天时间迁移到 v3 并摆脱这个愚蠢的问题。谢谢大家。

【讨论】:

    【解决方案2】:

    更新

    演示:http://jsbin.com/ofuze4

    演示:https://so.lucafilosofi.com/google-maps-api-v2-jquery-ui-dialog-non-stoppable-dragging-problem/

    伪代码:

    JS:

    $(function() {
        $("#j-dialog").dialog({
            resizable: false,
            width: 500,
            height: 400,
            open: function() {
                initialize();
            }
        });
    });
    function initialize() {
        var latlng = new google.maps.LatLng( - 34.397, 150.644);
        var myOptions = {
            zoom: 8,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map($("#map_canvas")[0], myOptions);
    
        var contentString = $('#map-info').text();
    
        var infowindow = new google.maps.InfoWindow({
            content: contentString
        });
    
    var newIcon = 'http://cdn2.iconfinder.com/data/icons/oxygen/48x48/actions/note2.png';
    
    var marker = new google.maps.Marker({ 
        icon: newIcon,
        position: latlng,
        map: map,
        title: "Hello World!"
    });
    
        google.maps.event.addListener(marker, 'click',
        function() {
            infowindow.open(map, marker);
        });
    }
    

    CSS:

    <style>#map_canvas { margin:0 auto; width:450px; height: 340px }</style>
    

    HTML:

        <div title="google maps inside jquery dialog" id="j-dialog">    
          <div id="map_canvas">
          </div>  
        </div>
    

    希望有帮助

    参考:

    【讨论】:

    • 感谢您的回答,不幸的是,将谷歌地图放入 jUi 对话框不是我的问题。问题是当我单击信息气球阴影并拖动地图时,它不会停止拖动。
    • 只是一个问题,你不是在那个例子中使用 api-v3 吗?
    • 问题是“我正在使用 Google Maps API v2(出于某种原因,它必须是 v2)和 jQuery UI 1.8.6(和 jQuery 1.4.1)。”
    • @Mario Cesar 我将代码从@aSeptik 移植到 Google Maps v2。 jsbin.com/uxixe3/4 我认为如果您将 MapIconMaker 对象/构造函数添加到 jsbin,这可能会更容易调试,因为我在当前代码中看不到任何错误。 (虽然它的移植有些草率,因为我对 v2 的记忆正在消退。)
    • 感谢你们的帮助,但我们意识到我们迟早要迁移到 v3,所以我们再试一次......一切都解决了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多