在bootstrap modal 中加载百度地图的信息窗口失效解决方法

这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事。

前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能。

页面演示地址:http://www.lyytqm.com/Dealerships

点击地址区域在模态窗口中显示百度地图,并在地图中标注点位,显示窗口信息,但信息窗口展示的信息频繁失效,仅显示名称。

更换了各种加载数据方式不能解决,在蹲厕所时想到了原因,即可给出解决方法。

原因是bootstrap modal 以及动画 没过完全渲染完成的情况下,信息就加载完成,这种待模态窗口完全渲染后,窗口信息就不会正常显示。

解决方法是使用shown.bs.modal事件,待完全演染完成窗口后,打插入标注点,以及窗口信息。

代码如下:

$('#map-location-modal').on('shown.bs.modal', function (e) {
                _ShowMap(data.lng, data.lat, data.title, data.address, data.telphone, '18');
            })


function _ShowMap(lng, lat, name, addrsee, phone, zoom) {
        

        var message = '<p style="color: #bf0008;">' + name + '</p><p>地址:' + addrsee + '</p><p>电话:' + phone + '</p>'
            + '<form action="http://api.map.baidu.com/direction" method="get" id="gotoBaiduForm">'
            + '  <input type="hidden" value="易通集团网站" name="src" />'
            + '  <input type="hidden" value="" name="region" />'
            + '  <input type="hidden" value="html" name="output" />'
            + '  <input type="hidden" value="driving" name="mode" />'
            + '  <input type="hidden" value="" name="origin" />'
            + '  <input type="hidden" value="latlng:' + lat + ',' + lng + '|name:' + name + '" name="destination" />'
            + '  <button type="button" οnclick="gotobaidu()" id="NavigationButton" class="btn btn-default">导航</button>'
            + '</form>';
        var map = new BMap.Map("map-container");
        var marker = new BMap.Marker(new BMap.Point(lng, lat));
        var infoWindow = new BMap.InfoWindow(message);

        map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
        map.centerAndZoom(new BMap.Point(lng, lat), zoom);
        map.addControl(new BMap.NavigationControl());
        map.addControl(new BMap.MapTypeControl());   //添加地图类型控件
        map.addOverlay(marker);

        marker.addEventListener("click", function () {
            this.openInfoWindow(infoWindow);
        });
        marker.openInfoWindow(infoWindow);
        
    }

  

 

转载于:https://www.cnblogs.com/webdu/p/7824731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值